创建项目
方式一:Spring Initializr(推荐)
- 访问 https://start.spring.io/
- 选择项目配置:
- Project:Maven
- Language:Java
- Spring Boot:3.x.x
- Packaging:Jar
- Java:17
- 添加依赖:Spring Web
- 点击 Generate 下载项目
方式二:IDEA 创建
- File → New → Project → Spring Initializr
- 填写项目信息
- 选择依赖
- 创建项目
方式三:Maven 手动创建
项目结构
启动类
@SpringBootApplication 解析
@SpringBootApplication 是一个组合注解,包含:
| 注解 | 作用 |
|---|---|
| @SpringBootConfiguration | 标识为配置类 |
| @EnableAutoConfiguration | 启用自动配置机制 |
| @ComponentScan | 扫描当前包及子包下的组件 |
第一个接口
常用 Starter
Starter 是 Spring Boot 提供的一组依赖集合,简化依赖管理。| Starter | 说明 |
|---|---|
| spring-boot-starter-web | Web 开发 |
| spring-boot-starter-data-jpa | JPA 数据访问 |
| spring-boot-starter-data-redis | Redis |
| spring-boot-starter-security | 安全认证 |
| spring-boot-starter-validation | 参数校验 |
| spring-boot-starter-test | 测试 |
| spring-boot-starter-actuator | 监控 |
| spring-boot-starter-aop | AOP |
| spring-boot-starter-cache | 缓存 |
| spring-boot-starter-mail | 邮件 |
自动配置原理
Spring Boot 自动配置的核心流程:条件注解
| 注解 | 条件 |
|---|---|
| @ConditionalOnClass | 类路径存在指定类 |
| @ConditionalOnMissingClass | 类路径不存在指定类 |
| @ConditionalOnBean | 容器中存在指定 Bean |
| @ConditionalOnMissingBean | 容器中不存在指定 Bean |
| @ConditionalOnProperty | 配置属性满足条件 |
| @ConditionalOnWebApplication | Web 应用环境 |
自动配置示例
热部署
添加 devtools 依赖实现热部署:- Settings → Build → Compiler → Build project automatically
- Settings → Advanced Settings → Allow auto-make to start
打包部署
打包为 JAR
打包为 WAR
- 修改 pom.xml
- 修改启动类
- 部署到 Tomcat