SpringBoot2 最佳实践
基本流程:引入场景依赖 → 检查自动配置 → 修改配置项 → 按需自定义组件。
引入场景依赖(Starter)
- 根据功能需求,引入对应的 Starter。
- Starter 集中提供该场景所需的依赖,简化依赖管理。
- Spring Boot 根据依赖、配置项及容器中的组件等条件,决定哪些自动配置生效。
注意:引入依赖后,相关自动配置通常会生效,但仍需满足条件。
查看哪些自动配置生效(按需)
分析源码
- 找到相关的
XxxAutoConfiguration类。 - 查看
@Conditional…条件,判断配置是否生效。
查看条件评估报告
-
在
application.properties中添加:
debug=true -
或在启动时添加参数
--debug。 -
报告中:
Positive matches:条件匹配,相关配置可生效。Negative matches:条件未匹配,相关配置未生效,并说明原因。
注意:debug=true 用于输出调试信息和条件报告,不会强制启用自动配置。
根据需要修改默认配置
优先修改配置项
-
在
application.properties或application.yml中设置。 -
查阅对应版本的文档,确认属性名称、作用和默认值。
-
例如修改服务端口:
server.port=8081
通过源码查找配置项
- 找到相关的
XxxProperties类。 - 查看
@ConfigurationProperties(prefix="…"),确定属性前缀。 - 结合字段及嵌套结构,确定完整属性名。
理解:配置文件中的属性 → 绑定到 Properties 对象 → 自动配置读取并使用。
按需添加或替换组件
注册自定义组件
-
@Configuration + @Bean:通过方法创建并注册组件,常用于第三方类。 -
@Component:标注自定义类,由组件扫描注册。 -
配置类或组件类必须被扫描到,或通过
@Import等方式导入。
替换默认组件
- 许多默认组件使用
@ConditionalOnMissingBean。 - 当容器中已有符合条件的自定义 Bean 时,默认组件不再创建,即自动配置“退让”。
- 能否替换取决于具体条件,并非添加任意 Bean 都能覆盖默认组件。
禁用不需要的自动配置
- 可使用
@SpringBootApplication(exclude = XxxAutoConfiguration.class)排除指定自动配置。