03 November 2020

#Spring_Boot

#Spring_Boot

Key Concepts


S.No Topic Sub-Topics
1 Spring Boot Why Spring Boot?, Features, Evolution from Spring, Opinionated Approach, Microservices
2 Spring Boot Architecture Auto-Configuration, Starters, Application Context, Embedded Server, Actuator
3 Spring Boot Initializr Start Code, Dependencies, Packaging, Gradle/Maven, Project Structure
4 Spring Boot Dependency Management Starters, Versions, BOM, Dependency Resolution, Exclusions
5 Spring Boot Annotations @SpringBootApplication, @EnableAutoConfiguration, @Configuration, @ComponentScan, @Value
6 Spring Boot Configuration application.properties, application.yml, Profiles, ENV Variables, Logging
7 Rest API in Spring Boot @RestController, Mappings, JSON Serialization, ResponseEntity, Exception Handling
8 Data Validation @Valid, Custom Validators, BindingResult, Validation Messages, DTO Pattern
9 Service Layer @Service, Business Logic, DTO vs Entity, Mapper, Utility Classes
10 Spring Boot JPA @Entity, Repository Pattern, Query Methods, JPQL, Pagination
11 Database Integrations MySQL, PostgreSQL, H2, Datasource Config, Flyway
12 Transactions @Transactional, Isolation, Propagation, Rollback Rules, AOP
13 Spring Boot Security Basics Authentication, Authorization, UserDetails, PasswordEncoder, Filters
14 JWT Authentication Token Create, Validate, Refresh Token, UserDetailsService, Filter Chain
15 Error Handling Global Exception, @ControllerAdvice, Custom Exceptions, Error Response, Logs
16 Spring Boot Actuator Health Endpoints, Metrics, Auditing, Custom Actuators, Prometheus
17 Spring Boot Logging SLF4J, Logback, Log Levels, JSON Logging, External Logs
18 Spring Boot DevTools Live Reload, Remote Debugging, Auto Restart, Hot Swap, IDE Setup
19 Docker Basics Dockerfile, Build Image, Run Container, Environment Variables, Volumes
20 Docker + Spring Boot Container Image, Multi-Stage Build, docker-compose, Network, Debug
21 Spring Boot with Kafka Producer, Consumer, Topic, JSON Messages, Stream Processing
22 Spring Boot Cache Cache Abstraction, Redis Cache, @Cacheable, Expiry, Invalidations
23 Spring Boot Testing JUnit5, Mockito, WebMvcTest, DataJpaTest, Testcontainers
24 Spring Boot Email Send Email, Template Engine, HTML Email, Attachments, Scheduling
25 Spring Boot Scheduling @Scheduled, Cron Expression, ThreadPoolTaskScheduler, Async, Retry
26 Spring Boot WebSockets STOMP, SimpMessagingTemplate, Controller, Config, Client Test
27 Spring Boot Profiles Profile Property, Profile-based Beans, Multi Env, Dev/Test/Prod Setup, Config
28 Deployment Jar Packaging, WAR Packaging, Embedded Server, Reverse Proxy, Cloud
29 CI/CD GitHub Actions, Jenkins, Pipeline, Docker Registry, Deployment Flow
30 Final Project Full REST API, JWT Security, JPA + PostgreSQL, Docker, CI/CD Pipeline

Interview question

Basic Level

  1. What is Spring Boot and how does it differ from the traditional Spring Framework?
  2. What are the key features of Spring Boot?
  3. What is auto-configuration in Spring Boot?
  4. What is the purpose of the @SpringBootApplication annotation?
  5. What is the default embedded server used in Spring Boot?
  6. How do you create a Spring Boot application using Spring Initializr?
  7. What is the purpose of the application.properties or application.yml file?
  8. What is the difference between application.properties and application.yml?
  9. How do you run a Spring Boot application from the command line?
  10. What are Spring Boot Starters?
  11. How does Spring Boot simplify dependency management?
  12. What is the default port number for a Spring Boot web application?
  13. How can you change the default port of a Spring Boot application?
  14. What is the role of SpringApplication.run() method?
  15. What are the advantages of using Spring Boot DevTools?
  16. What is the use of the @ComponentScan annotation?
  17. What is the use of the @Bean annotation in Spring Boot?
  18. What is the purpose of the @Configuration annotation?
  19. How does Spring Boot handle dependency injection?
  20. What are profiles in Spring Boot and why are they used?
  21. How do you activate a specific Spring profile?
  22. What is the use of CommandLineRunner and ApplicationRunner?
  23. How do you externalize configuration in Spring Boot?
  24. How can you disable a specific auto-configuration?
  25. How can you enable lazy initialization in Spring Boot?

Intermediate Level

  1. How does Spring Boot perform auto-configuration internally?
  2. What are conditional annotations in Spring Boot?
  3. How can you customize the auto-configuration in Spring Boot?
  4. What is the difference between @Value and @ConfigurationProperties?
  5. How do you handle exceptions globally in Spring Boot?
  6. What is the use of @ControllerAdvice and @ExceptionHandler?
  7. How do you validate request bodies using Spring Boot?
  8. What is the role of Hibernate Validator in Spring Boot?
  9. How does Spring Boot handle logging by default?
  10. How can you use different logging frameworks in Spring Boot?
  11. How do you use the @RestController annotation?
  12. What is the difference between @Controller and @RestController?
  13. How can you customize HTTP responses in Spring Boot REST?
  14. How do you use ResponseEntity in REST controllers?
  15. What is the use of @PathVariable and @RequestParam?
  16. How do you test Spring Boot applications using @SpringBootTest?
  17. What is the purpose of the @DataJpaTest annotation?
  18. How do you use MockMvc for testing controllers?
  19. What is the difference between integration testing and unit testing?
  20. How do you manage transactions in Spring Boot using @Transactional?
  21. How does Spring Boot support JPA and Hibernate?
  22. How do you configure multiple data sources in Spring Boot?
  23. What is the role of Spring Boot Actuator?
  24. How do you enable custom Actuator endpoints?
  25. How do you use Spring Boot caching with @EnableCaching and @Cacheable?

Advanced Level

  1. What is the internal working of Spring Boot?s auto-configuration mechanism?
  2. How do you create custom auto-configuration classes in Spring Boot?
  3. How does Spring Boot integrate with Spring Cloud?
  4. How do you secure REST APIs in Spring Boot using Spring Security?
  5. What is the use of JWT in Spring Boot Security?
  6. How do you implement OAuth2 in Spring Boot?
  7. How do you enable and use @EnableScheduling for task scheduling?
  8. How do you execute asynchronous tasks using @Async?
  9. How do you integrate Spring Boot with Kafka?
  10. How do you integrate RabbitMQ with Spring Boot?
  11. How does Spring Boot support WebFlux for reactive programming?
  12. What is the difference between Spring MVC and Spring WebFlux?
  13. How do you monitor Spring Boot applications using Actuator and Micrometer?
  14. How do you integrate Spring Boot with Prometheus and Grafana?
  15. How can you implement health checks in Spring Boot applications?
  16. How do you use Docker to containerize a Spring Boot application?
  17. How do you configure Spring Boot applications in Kubernetes?
  18. How do you use ConfigMaps and Secrets in Kubernetes for Spring Boot?
  19. What is the use of Spring Cloud Config Server?
  20. How do you implement centralized configuration using Spring Cloud Config?
  21. What is the purpose of Eureka in microservices architecture?
  22. How does Spring Boot handle distributed tracing using Sleuth?
  23. How do you configure circuit breakers in Spring Boot using Resilience4j?
  24. How do you configure retries and rate limiting using Resilience4j?
  25. How do you implement service-to-service communication in Spring Boot?

Expert Level

  1. How do you build a microservices architecture using Spring Boot and Spring Cloud?
  2. What are common performance tuning techniques for Spring Boot applications?
  3. How do you implement caching at scale using Redis in Spring Boot?
  4. How do you implement asynchronous communication using Kafka streams?
  5. How can you optimize database access in Spring Boot using JPA and Hibernate?
  6. How do you customize connection pooling using HikariCP in Spring Boot?
  7. How do you secure microservices communication in Spring Boot?
  8. What are some common pitfalls in Spring Boot security configurations?
  9. How do you use OpenTelemetry for observability in Spring Boot?
  10. How do you expose metrics using Micrometer?
  11. How do you design custom starter modules in Spring Boot?
  12. What is the process for creating your own spring-boot-starter?
  13. How do you integrate Spring Boot with GraphQL?
  14. How do you configure GraalVM Native Image in Spring Boot 3?
  15. How does AOT (Ahead of Time) compilation work in Spring Boot?
  16. How do you handle large file uploads and downloads efficiently?
  17. How do you handle database migrations using Flyway and Liquibase?
  18. How do you handle multi-environment configuration management?
  19. How do you build multi-module Spring Boot applications?
  20. How do you use Testcontainers for integration testing?
  21. How do you design resilient APIs using Spring Boot and Resilience4j?
  22. How do you integrate ELK stack (Elasticsearch, Logstash, Kibana) with Spring Boot?
  23. How do you use Spring Boot with MongoDB for reactive applications?
  24. What are the latest features introduced in Spring Boot 3.x?
  25. How do you design a production-ready Spring Boot application architecture?

Related Topics