一、Spring Boot核心优势速览
1. 传统Spring vs Spring Boot对比
 
  
   | 特性 | Spring | Spring Boot | 
 
 
  
   | 配置方式 | XML/Java Config | 自动配置 | 
  
   | 内嵌服务器 | 需手动部署 | Tomcat/Jetty内置 | 
  
   | 依赖管理 | 手动指定 | Starter POMs | 
  
   | 监控 | 需集成第三方 | Actuator内置 | 
  
   | 启动速度 | 较慢 | 秒级启动 | 
 
二、5分钟极速开发实战
1. 创建项目(使用Spring Initializr)
 - 访问 start.spring.io
- 选择配置: 
  
   - Project: Maven
- Language: Java
- Spring Boot: 3.0.5
- Dependencies: Spring Web, DevTools
 
- 点击Generate下载项目
2. 编写第一个REST控制器
@RestController  
@RequestMapping("/api")  
public class HelloController {  
    @GetMapping("/hello")  
    public String sayHello(@RequestParam(required = false) String name) {  
        return "Hello, " + (name != null ? name : "Spring Boot");  
    }  
    @PostMapping("/users")  
    public User createUser(@RequestBody User user) {  
        return userService.save(user);  
    }  
}  
public record User(Long id, String name, String email) {}  
3. 运行与测试
mvn spring-boot:run  
三、自动配置与进阶功能
1. 自动装配原理图解
 
 
2. 常用Starter依赖说明
 
  
   | Starter | 功能 | 包含技术 | 
 
 
  
   | spring-boot-starter-web | Web开发 | Tomcat, Spring MVC | 
  
   | spring-boot-starter-data-jpa | 数据库操作 | Hibernate, HikariCP | 
  
   | spring-boot-starter-security | 安全认证 | Spring Security | 
  
   | spring-boot-starter-test | 单元测试 | JUnit, Mockito | 
 
四、数据库集成与REST API增强
1. 添加JPA与H2数据库
  
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-data-jpa</artifactId>  
</dependency>  
<dependency>  
    <groupId>com.h2database</groupId>  
    <artifactId>h2</artifactId>  
    <scope>runtime</scope>  
</dependency>  
2. 定义实体与Repository
@Entity  
public class User {  
    @Id  
    @GeneratedValue  
    private Long id;  
    private String name;  
    private String email;  
    
}  
public interface UserRepository extends JpaRepository<User, Long> {}  
3. 编写CRUD API
@RestController  
@RequestMapping("/api/users")  
public class UserController {  
    private final UserRepository repository;  
    @GetMapping  
    public List<User> getAllUsers() {  
        return repository.findAll();  
    }  
    @GetMapping("/{id}")  
    public User getUserById(@PathVariable Long id) {  
        return repository.findById(id)  
               .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));  
    }  
}  
五、API文档生成(Swagger集成)
1. 添加OpenAPI依赖
<dependency>  
    <groupId>org.springdoc</groupId>  
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>  
    <version>2.1.0</version>  
</dependency>  
2. 访问文档界面
启动后访问:
 - API文档:http://localhost:8080/swagger-ui.html
- OpenAPI定义:http://localhost:8080/v3/api-docs
六、生产级部署与监控
1. 打包与运行
mvn clean package  
java -jar target/demo-0.0.1-SNAPSHOT.jar  
2. 健康检查与监控
curl http://localhost:8080/actuator/health  
curl http://localhost:8080/actuator/env  
3. Docker化部署
FROM eclipse-temurin:17-jdk-alpine  
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar  
ENTRYPOINT ["java","-jar","/app.jar"]  
七、常见问题与解决方案
1. 启动失败:端口冲突
# application.properties  
server.port=8081  
2. 依赖冲突
mvn dependency:tree > deps.txt  
3. 热部署失效
# 开启自动重启  
spring.devtools.restart.enabled=true