Blog/Java/Spring Boot

Spring Boot

10 essential spring boot interview questions

Spring Boot simplifies building production-ready Spring applications. Features: auto-configuration, embedded servers, opinionated defaults, easy deployment. Reduces boilerplate compared to plain Spring. Built-in testing support. Great for microservices, REST APIs, web apps. Convention over configuration approach.
Dependency injection: providing dependencies to objects rather than creating them. Spring manages beans (objects) and injects dependencies automatically. @Autowired: injects beans. @Bean: registers bean. Constructor injection is preferred over field injection. Reduces coupling, improves testability.
@SpringBootApplication: enables auto-configuration, component scanning. @RestController: REST endpoint. @GetMapping, @PostMapping, @PutMapping, @DeleteMapping: HTTP methods. @Service: business logic. @Repository: data access. @Configuration: bean configuration. @Value: inject properties. Annotations reduce XML configuration.
@RestController marks class as REST controller. @GetMapping, @PostMapping map methods to HTTP methods. @RequestBody deserializes request JSON. @ResponseBody serializes response to JSON (automatic). @PathVariable for URL parameters, @RequestParam for query strings. Return response entity with status code.
Spring Data JPA simplifies database access using JPA (Java Persistence API). Define repositories extending JpaRepository. Automatic CRUD methods (save, findById, delete). Custom queries with @Query. Entity classes map to database tables. Automatic transaction management. Lazy/eager loading strategies.
Spring: comprehensive framework requiring manual configuration (XML, @Bean). Spring Boot: builds on Spring with auto-configuration, embedded servers, production-ready. Spring Boot reduces setup, faster development. Spring provides flexibility; Spring Boot provides defaults. Spring Boot uses Spring internally.
@ExceptionHandler: handle specific exceptions. @ControllerAdvice: global exception handling. Create custom exception classes extending Exception. Return ResponseEntity with error details and status code. Implement proper HTTP status codes. Log exceptions server-side.
Configuration file for Spring Boot properties. Format: key=value. Common properties: server.port, spring.datasource.url, spring.jpa.hibernate.ddl-auto. Override with environment variables or command-line arguments. Use profiles: application-dev.properties, application-prod.properties. Externalized configuration.
Spring Security framework. Configure in SecurityConfig class. Authentication: PasswordEncoder, UserDetailsService. Authorization: @PreAuthorize, hasRole(). JWT tokens for stateless auth. OAuth 2.0 integration available. Encrypt passwords with BCrypt.
AOP: cross-cutting concerns (logging, transaction, security) separate from business logic. Aspects: reusable code for multiple classes. Annotations: @Aspect. Advice types: @Before, @After, @Around. Pointcuts: specify where advice applies. Reduces code duplication, improves maintainability.