Skip to content

Spring & Web

Master Spring Framework for building enterprise web applications: core concepts, dependency injection, REST APIs, security, database integration, and transaction management.


Topics

Spring Boot

Spring Boot - Auto-Configuration - Request Handling - Configuration Files - Starter Dependencies
Spring Boot fundamentals: @SpringBootApplication, @Configuration, @Bean, request handling annotations, basic property configuration, starter dependencies.

Spring Annotations & Components

@Component - @Service - @Repository - @Controller - @RestController - Bean Lifecycle - Component Scanning - Qualifiers
Stereotype annotations and bean management: @Component, @Service, @Repository, @Controller vs @RestController, bean scopes (singleton/prototype), component scanning process, @Qualifier/@Primary disambiguation, real-world layered architecture.

Spring Boot Advanced

Dependency Injection - Bean Lifecycle - Application Lifecycle - Profiles - Environment Configuration - Conditional Beans
Advanced Spring concepts: DI patterns (constructor/setter/field), bean lifecycle hooks (@PostConstruct, @PreDestroy), application startup/shutdown flow, environment-specific profiles with examples, conditional bean creation.

Spring Boot Circuit Breaker

Circuit Breaker - Resilience4j - Hystrix - Failsafe - Sentinel - Vavr - Fault Tolerance - Retry/Timeout/Bulkhead
Fault tolerance patterns: circuit breaker states (CLOSED/OPEN/HALF_OPEN), Resilience4j implementation with examples, framework comparison (Hystrix, Vavr, Failsafe, Sentinel), combining patterns, migration guide.

Spring Threading & Async

@Async - CompletableFuture - TaskExecutor - Virtual Threads - Non-Blocking REST - Async Patterns
Asynchronous processing: @Async annotation with TaskExecutor configuration, CompletableFuture composition and chaining, REST endpoints returning futures, Java 21 virtual threads integration, comparison with WebFlux, production patterns.

Web Services

SOAP - WSDL - REST Principles - Web Services Standards - XML/JSON Serialization
Web service architectures: SOAP vs. REST trade-offs, WSDL contracts, RESTful resource design, content negotiation, versioning strategies.

API Styles & Protocols

REST - GraphQL - gRPC - OpenAPI/Swagger - HATEOAS - Versioning - Status Codes
API design paradigms: REST conventions (GET/POST/PUT/DELETE/PATCH), GraphQL query language, gRPC binary protocol, API documentation with Swagger/OpenAPI, deprecation strategies.

Exception Handling

@ControllerAdvice - @ExceptionHandler - Global Error Handling - Validation Errors - HTTP Status Codes - Error Response DTO
Centralized exception handling: @ControllerAdvice for global handlers, @ExceptionHandler mapping exceptions to HTTP responses, validation error handling, custom exception hierarchies, async exception handling.

Security

Authentication - Authorization - Spring Security - OAuth2 - SSL/TLS - CORS - OWASP Top 10
API security fundamentals: user authentication, role-based authorization, Spring Security configuration, HTTPS/TLS, cross-origin handling, OWASP defenses.

JWT & OAuth2

JWT Tokens - OAuth2 Flows - Token Refresh - Role-Based Access - Authentication Filters - Security Best Practices
Token-based authentication: JWT structure and validation, OAuth2 grant types, implementation with Spring Security, refresh token patterns, token blacklisting, multi-tenancy, security best practices.

JPA & ORM

JPA - Hibernate - Entity Mapping - Relationships - Query Language - Transactions - Lazy/Eager Loading
Object-relational mapping: entity annotations (@Entity, @Column, @OneToMany), JPQL/HQL queries, transaction propagation (@Transactional), N+1 problem, eager vs. lazy loading.


Quick Interview Prep

Spring Boot essentials: - Dependency Injection: Constructor injection (preferred) → Setter → Field - Bean Scopes: Singleton (default, shared), Prototype (new instance per request), Request/Session (web-scoped) - Annotations: @Component, @Service, @Repository stereotypes; @Autowired for injection; @Value for properties - Profiles: application.yml for defaults, application-dev.yml, application-prod.yml for environment-specific config

REST API best practices: - HTTP Methods: GET (safe, idempotent), POST (create), PUT (replace, idempotent), PATCH (partial), DELETE (remove, idempotent) - Status Codes: 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Server Error - Versioning: URL path (/v1/users), header (Accept: application/vnd.company.v1+json), or query param

Security patterns: - Authentication: Session-based (server state) vs. JWT (stateless tokens) - Authorization: Role-based (ROLE_USER, ROLE_ADMIN), @PreAuthorize("hasRole('ADMIN')") - OAuth2: Authorization Code flow for third-party apps, Bearer token validation