Spring Boot 是基于 Spring 框架的应用开发框架,旨在简化 Spring 应用的创建、配置和部署。它遵循“约定优于配置”的原则,提供自动配置、嵌入式服务器等功能,让开发者可以专注于业务逻辑的实现,而无需花费大量时间在繁琐的配置上。
核心特性
1. 自动配置
Spring Boot 自动配置功能基于应用的依赖和配置,自动配置 Spring 框架和第三方库,例如:
- 数据访问:自动配置数据源、JPA、MyBatis 等数据访问技术。
- Web 开发:自动配置 Spring MVC、嵌入式 Tomcat 或 Jetty 服务器等 Web 开发组件。
- 安全:自动配置 Spring Security 安全框架。
- 监控:自动配置 Actuator 监控端点。
例如,添加 Spring Data JPA 依赖后,Spring Boot 会自动配置数据源、实体管理器工厂、事务管理器等组件,无需手动配置 XML 或 Java 代码。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
```
2. 嵌入式服务器
Spring Boot 内置 Tomcat、Jetty 或 Undertow 等服务器,无需手动部署 WAR 包。只需运行应用程序,即可启动 Web 服务器。
```java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
3. Starter POMs
Spring Boot 提供了 Starter POMs,预先配置了一组相关的依赖,简化依赖管理。例如,`spring-boot-starter-web` 包含了 Spring MVC、嵌入式 Tomcat 和 Jackson 等 Web 开发所需的依赖。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
4. Actuator
Spring Boot Actuator 提供了生产就绪功能,例如健康检查、指标收集、日志查看等,方便监控和管理应用程序。
```
http://localhost:8080/actuator/health
```
开发示例
以下是一个简单的 Spring Boot REST API 示例:
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
}
```
总结
Spring Boot 显著简化了 Java 应用的开发和部署,让开发者可以专注于业务逻辑,提高开发效率。其自动配置、嵌入式服务器、Starter POMs 和 Actuator 等功能,使其成为构建现代微服务架构的理想选择。