03 November 2020

#Spring_Boot

#Spring_Boot
Level Topic Subtopics
Basic Introduction What is Spring Boot, Advantages, Spring vs Spring Boot, Modules, Microservices Support
Setup & Configuration Spring Initializr, Maven/Gradle Setup, Application Properties, YAML Config, Profiles
Auto Configuration @SpringBootApplication, @EnableAutoConfiguration, Conditional Beans, Starters, Logging
Spring Boot Annotations @RestController, @RequestMapping, @GetMapping, @PostMapping, @SpringBootTest
Spring Boot DevTools Hot Reload, Automatic Restart, LiveReload, Property Overrides, Development Best Practices
Intermediate Dependency Injection & Beans @Component, @Service, @Repository, @Autowired, @Bean
Spring Boot REST APIs JSON Support, Path Variables, Request Params, Exception Handling, ResponseEntity
Data Access (Spring Data JPA) Repositories, @Entity, CRUD Operations, Query Methods, JPQL/Native Queries
Validation @Valid, @NotNull, @Size, Custom Validators, Exception Handling
Profiles & Configuration Mgmt @Profile, External Config, Command Line Args, Environment Variables, PropertySource
Advanced Spring Boot Security Authentication, Authorization, UserDetailsService, Password Encoding, JWT Integration
Actuator & Monitoring Health Checks, Metrics, Custom Endpoints, Prometheus Integration, Grafana
Error Handling Custom Error Pages, @ControllerAdvice, @ExceptionHandler, Global Exception Handling, Problem Details
Caching @EnableCaching, @Cacheable, @CacheEvict, CacheManager, Redis Cache
Testing in Spring Boot Unit Testing, MockMvc, @WebMvcTest, @DataJpaTest, Integration Testing
Expert Microservices with Spring Boot Service Discovery (Eureka), API Gateway, Config Server, Load Balancing, Circuit Breaker (Resilience4j)
Spring Cloud Advanced Feign Client, Sleuth, Zipkin, Distributed Tracing, Centralized Config
Reactive Spring (WebFlux) Mono, Flux, Reactive Repositories, Functional Endpoints, RSocket
Spring Boot Messaging RabbitMQ, Kafka, JMS, Message Listeners, Event-Driven Architectures
Best Practices & Deployment Dockerizing Spring Boot Apps, Kubernetes, CI/CD Integration, Cloud Deployment (AWS/Azure/GCP), Observability

1. Introduction & Basics

  1. What is Spring Boot and how is it different from Spring Framework?
  2. What are the advantages of using Spring Boot?
  3. Explain the role of Spring Boot starters.
  4. What is Spring Initializr and how is it used?
  5. How does Spring Boot reduce boilerplate code?
  6. What is the default embedded server in Spring Boot?
  7. Can we change the default server in Spring Boot? How?
  8. Explain the role of @SpringBootApplication.
  9. What are auto-configurations in Spring Boot?
  10. What is convention over configuration in Spring Boot?
  11. How do you create a simple Spring Boot application?
  12. Explain the difference between Spring Boot and Spring MVC.
  13. What are common use cases of Spring Boot?
  14. How does Spring Boot simplify microservices development?
  15. What is Spring Boot CLI and when is it used?
  16. What is a fat jar in Spring Boot?
  17. Explain how Spring Boot manages dependencies.
  18. How does Spring Boot handle logging by default?
  19. What is the role of Spring Boot DevTools?
  20. How do you run a Spring Boot application?
  21. What is the use of application.properties file?
  22. What are YAML configurations in Spring Boot?
  23. How do you set active profiles in Spring Boot?
  24. What is Spring Boot?s opinionated approach?
  25. How do you override default properties in Spring Boot?

2. Configuration & Beans

  1. How do you define beans in Spring Boot?
  2. Explain the use of @Component, @Service, and @Repository.
  3. What is dependency injection in Spring Boot?
  4. Difference between @Bean and @Component.
  5. How do you use @Configuration in Spring Boot?
  6. What are configuration properties in Spring Boot?
  7. How do you bind external properties to Java objects?
  8. What is the use of @Value annotation?
  9. How do you handle different environments in Spring Boot?
  10. What is @Profile and how is it used?
  11. Explain lazy initialization in Spring Boot.
  12. How do you customize the banner in Spring Boot?
  13. How do you create reusable configurations in Spring Boot?
  14. What is conditional bean creation in Spring Boot?
  15. Explain the role of @ConditionalOnProperty.
  16. How do you load properties from external files?
  17. What is the difference between application.properties and application.yml?
  18. How do you secure sensitive properties in Spring Boot?
  19. Explain the use of Environment abstraction.
  20. How do you access command-line arguments in Spring Boot?
  21. What is Spring Boot?s support for type-safe configuration?
  22. How do you configure logging in Spring Boot?
  23. What is the difference between bootstrap.properties and application.properties?
  24. How do you override bean definitions in Spring Boot?
  25. Explain bean lifecycle in Spring Boot.

3. REST APIs

  1. How do you create a REST controller in Spring Boot?
  2. Difference between @Controller and @RestController.
  3. What is the purpose of @RequestMapping?
  4. Explain @GetMapping, @PostMapping, @PutMapping, and @DeleteMapping.
  5. How do you handle path variables in Spring Boot?
  6. How do you handle request parameters in Spring Boot?
  7. What is ResponseEntity and when is it used?
  8. How do you handle JSON requests and responses?
  9. How do you validate incoming requests in Spring Boot?
  10. Explain exception handling in Spring Boot REST APIs.
  11. What is global exception handling with @ControllerAdvice?
  12. How do you customize error responses in Spring Boot?
  13. What is content negotiation in Spring Boot?
  14. How do you implement versioning in REST APIs?
  15. Explain HATEOAS in Spring Boot.
  16. How do you enable CORS in Spring Boot?
  17. What is the difference between synchronous and asynchronous APIs?
  18. How do you implement file upload and download in Spring Boot?
  19. How do you handle pagination and sorting in REST APIs?
  20. What is the use of @CrossOrigin annotation?
  21. How do you consume external REST APIs using RestTemplate?
  22. What is WebClient in Spring Boot?
  23. Compare RestTemplate and WebClient.
  24. How do you document REST APIs in Spring Boot?
  25. What is OpenAPI/Swagger integration in Spring Boot?

4. Data Access (Spring Data JPA)

  1. What is Spring Data JPA?
  2. Difference between JpaRepository and CrudRepository.
  3. How do you define an entity in Spring Boot?
  4. What is the role of @Entity annotation?
  5. Explain the use of @Id and @GeneratedValue.
  6. How do you define relationships between entities?
  7. What are derived query methods in Spring Data JPA?
  8. How do you write custom JPQL queries?
  9. What is the use of @Query annotation?
  10. How do you enable pagination and sorting in JPA?
  11. What are named queries in JPA?
  12. How do you handle transactions in Spring Boot?
  13. Explain optimistic and pessimistic locking.
  14. What is the use of EntityManager?
  15. How do you perform batch inserts and updates?
  16. How do you map embedded objects in JPA?
  17. Explain inheritance mapping in JPA.
  18. How do you handle native queries in JPA?
  19. What is lazy loading vs eager loading?
  20. How do you use projections in Spring Data JPA?
  21. What is the difference between save() and saveAndFlush()?
  22. How do you use specification API in Spring Data JPA?
  23. Explain auditing in Spring Data JPA.
  24. What is the N+1 problem in JPA?
  25. How do you optimize JPA queries in Spring Boot?

5. Security

  1. What is Spring Security in Spring Boot?
  2. How do you enable Spring Security in a Spring Boot application?
  3. Difference between authentication and authorization.
  4. How do you create custom user authentication?
  5. What is UserDetailsService and how is it used?
  6. How do you configure password encoding in Spring Security?
  7. Explain role-based access control in Spring Boot.
  8. How do you secure REST APIs with Spring Security?
  9. What is CSRF protection and how does Spring handle it?
  10. How do you enable/disable CSRF protection in Spring Boot?
  11. Explain JWT authentication in Spring Boot.
  12. How do you integrate OAuth2 with Spring Boot?
  13. What are security filters in Spring Security?
  14. How do you configure multiple security rules in Spring Boot?
  15. What is method-level security in Spring Boot?
  16. How do you enable HTTPS in Spring Boot?
  17. What is CORS and how do you configure it in Spring Security?
  18. Explain basic authentication in Spring Boot.
  19. How do you configure custom login pages in Spring Boot?
  20. What is stateless authentication?
  21. How do you log out users in Spring Boot?
  22. Explain multi-factor authentication with Spring Boot.
  23. How do you secure sensitive endpoints in Spring Boot Actuator?
  24. What is LDAP integration with Spring Boot?
  25. What are best practices for securing Spring Boot applications?

6. Actuator & Monitoring

  1. What is Spring Boot Actuator?
  2. How do you enable Actuator in a Spring Boot application?
  3. What are built-in Actuator endpoints?
  4. How do you enable/disable specific Actuator endpoints?
  5. What is the /health endpoint in Actuator?
  6. How do you customize Actuator health checks?
  7. What is the /metrics endpoint?
  8. How do you expose Actuator endpoints over HTTP?
  9. How do you secure Actuator endpoints?
  10. What is the /info endpoint in Actuator?
  11. How do you add custom info in /info endpoint?
  12. Explain how to create custom Actuator endpoints.
  13. What is micrometer in Spring Boot?
  14. How do you integrate Actuator with Prometheus?
  15. How do you monitor Spring Boot apps with Grafana?
  16. How do you enable auditing in Spring Boot Actuator?
  17. What is the difference between management.port and server.port?
  18. How do you configure health indicators in Actuator?
  19. What is the /beans endpoint in Actuator?
  20. How do you disable sensitive Actuator endpoints?
  21. How do you use Actuator with Kubernetes probes?
  22. Explain loggers endpoint in Actuator.
  23. How do you extend Actuator metrics?
  24. What is the role of Spring Boot Admin?
  25. How do you monitor Spring Boot apps in production?

7. Testing

  1. How do you test Spring Boot applications?
  2. Difference between unit testing and integration testing.
  3. What is @SpringBootTest annotation?
  4. How do you test REST APIs in Spring Boot?
  5. Explain the use of MockMvc in Spring Boot tests.
  6. How do you mock dependencies in Spring Boot tests?
  7. What is @WebMvcTest annotation?
  8. What is @DataJpaTest annotation?
  9. How do you test database operations in Spring Boot?
  10. Explain the role of H2 database in testing.
  11. How do you use TestRestTemplate?
  12. How do you test secured APIs in Spring Boot?
  13. What is @MockBean annotation?
  14. How do you test exceptions in Spring Boot?
  15. How do you test with multiple profiles in Spring Boot?
  16. How do you test caching in Spring Boot?
  17. How do you test scheduled tasks in Spring Boot?
  18. How do you write performance tests in Spring Boot?
  19. How do you measure code coverage in Spring Boot?
  20. What is the role of Mockito in testing?
  21. How do you integrate JUnit5 with Spring Boot?
  22. How do you run tests in CI/CD pipelines?
  23. What is the difference between @BeforeEach and @BeforeAll?
  24. How do you use WireMock for testing in Spring Boot?
  25. What are best practices for testing Spring Boot applications?

8. Microservices with Spring Boot

  1. What is a microservice architecture?
  2. How does Spring Boot support microservices?
  3. What is Spring Cloud?
  4. Explain the role of Eureka in microservices.
  5. What is API Gateway in microservices?
  6. How do you implement service discovery in Spring Boot?
  7. What is load balancing in microservices?
  8. Difference between Ribbon and Spring Cloud LoadBalancer.
  9. What is Feign Client in Spring Boot?
  10. How do you configure centralized configuration with Spring Cloud Config?
  11. What is distributed tracing in microservices?
  12. How do you use Sleuth in Spring Boot microservices?
  13. What is Zipkin and how is it integrated?
  14. How do you implement circuit breaker in Spring Boot?
  15. Explain Resilience4j integration with Spring Boot.
  16. What is Hystrix and why is it deprecated?
  17. How do you secure microservices with Spring Boot?
  18. How do you manage communication between microservices?
  19. Difference between synchronous and asynchronous communication in microservices.
  20. How do you deploy Spring Boot microservices on Kubernetes?
  21. What is service registry and discovery?
  22. Explain config server in Spring Cloud.
  23. What are common challenges in microservices architecture?
  24. How do you monitor Spring Boot microservices?
  25. What are best practices for Spring Boot microservices?

9. Reactive Spring (WebFlux)

  1. What is Reactive Programming?
  2. Difference between Spring MVC and Spring WebFlux.
  3. What is Reactor in Spring Boot?
  4. Explain Mono and Flux in WebFlux.
  5. What is backpressure in Reactive Streams?
  6. How do you create a reactive REST API in Spring Boot?
  7. What is functional endpoint in WebFlux?
  8. Difference between annotations and functional programming in WebFlux.
  9. How do you handle errors in WebFlux?
  10. Explain the use of WebClient in WebFlux.
  11. How do you test reactive APIs in Spring Boot?
  12. What is the role of Scheduler in WebFlux?
  13. How do you stream data with WebFlux?
  14. Explain Server-Sent Events in WebFlux.
  15. How do you secure WebFlux applications?
  16. Difference between blocking and non-blocking code in WebFlux.
  17. What is RSocket in Spring Boot?
  18. How do you connect WebFlux with MongoDB?
  19. What is reactive repository in Spring Data?
  20. Explain cold and hot publishers in WebFlux.
  21. How do you handle backpressure in WebFlux?
  22. What is StepVerifier in testing WebFlux?
  23. How do you integrate WebFlux with Kafka?
  24. What is the difference between parallel and sequential Flux?
  25. What are real-world use cases for WebFlux?

10. Deployment & Best Practices

  1. How do you package and run a Spring Boot application?
  2. Difference between jar and war in Spring Boot.
  3. How do you create a Docker image for Spring Boot app?
  4. How do you deploy Spring Boot apps on Kubernetes?
  5. What is the role of Helm charts in deploying Spring Boot?
  6. How do you deploy Spring Boot apps on AWS?
  7. How do you deploy Spring Boot apps on Azure?
  8. How do you deploy Spring Boot apps on Google Cloud?
  9. What is CI/CD and how do you integrate it with Spring Boot?
  10. How do you handle configuration management in production?
  11. How do you externalize configuration in Spring Boot?
  12. What are Spring Boot best practices for security?
  13. How do you monitor logs in Spring Boot?
  14. How do you enable centralized logging in Spring Boot microservices?
  15. How do you handle versioning in Spring Boot apps?
  16. What is Blue-Green deployment for Spring Boot apps?
  17. How do you scale Spring Boot applications horizontally?
  18. What is Canary deployment?
  19. How do you optimize performance in Spring Boot applications?
  20. How do you reduce startup time of Spring Boot apps?
  21. How do you enable caching in production apps?
  22. What are common pitfalls in Spring Boot development?
  23. How do you integrate Spring Boot with CI/CD pipelines?
  24. What is Twelve-Factor App methodology and how does Spring Boot support it?
  25. What are Spring Boot best practices for enterprise projects?