Spring Boot Notes
1. Introduction to Spring Boot
- Spring Boot is built on top of Spring Framework to simplify setup and development.
- Eliminates boilerplate configuration and promotes rapid application development.
2. Key Features
- Auto-configuration.
- Starter dependencies.
- Embedded servers (Tomcat, Jetty, Undertow).
- Production-ready features (Spring Boot Actuator).
- Spring Initializr ([Link]).
3. Advantages
- Minimal configuration.
- Standalone applications.
- Microservice-ready.
- Easy testing and monitoring.
4. Spring Boot Architecture
- Spring Boot Starters: Predefined dependencies for faster setup.
- Auto-Configuration: Automatically configures beans based on dependencies.
- Spring Boot CLI: Run and test Groovy scripts quickly.
- Embedded Servers: No need to deploy WAR files, applications run as JARs.
5. Starter Dependencies
- spring-boot-starter-web → REST APIs, Spring MVC.
- spring-boot-starter-data-jpa → Database access via Hibernate/JPA.
- spring-boot-starter-security → Authentication and authorization.
- spring-boot-starter-test → Testing libraries.
6. Application Structure
- @SpringBootApplication annotation = @Configuration + @EnableAutoConfiguration +
@ComponentScan.
- [Link] / [Link] for configuration.
- Controller → Service → Repository layers.
7. Spring Boot Annotations
- @SpringBootApplication
- @RestController
- @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
- @Autowired
- @Entity, @Table, @Id, @GeneratedValue
8. Spring Boot Actuator
- Provides endpoints to monitor and manage the app.
- Examples: /actuator/health, /actuator/info, /actuator/metrics.
9. Spring Boot with Database
- Configure datasource in [Link].
- Use Spring Data JPA repositories.
- Example: interface UserRepository extends JpaRepository {}
10. Spring Boot with Microservices
- Spring Cloud integration.
- Service Discovery (Eureka).
- API Gateway (Spring Cloud Gateway).
- Circuit Breaker (Resilience4j, Hystrix).
11. Deployment
- Applications packaged as executable JARs.
- Run with: java -jar [Link].
- Supports Docker and Kubernetes.
12. Testing in Spring Boot
- @SpringBootTest for integration testing.
- MockMvc for REST API testing.
- JUnit & Mockito integration.