自动配置
可以把自动配置想象成SpringBoot 提前为你准备了大量的 “配置模板”,当你的项目引入了某个依赖、存在某个类、配置了某个属性等等时,这个模板就会自动生效,帮你完成对应的配置。
自动配置的核心:@EnableAutoConfiguration注解触发,加载并筛选XXXAutoConfiguration自动配置类,根据条件注解决定是否生效。
举个例子:
①当你在 pom.xml 中引入了spring-boot-starter-web依赖,SpringBoot 就会自动配置 Tomcat、SpringMVC 的 DispatcherServlet、字符编码过滤器等 Web 开发所需的组件。
②当你引入了spring-boot-starter-data-jpa依赖,SpringBoot 会自动配置 JPA 的实体管理器、数据源连接等相关组件。
// 示例:自动配置数据源 @Configuration @ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class}) @EnableConfigurationProperties(DataSourceProperties.class) public class DataSourceAutoConfiguration { @Bean @ConditionalOnMissingBean // 如果没有自定义 DataSource,才创建这个 public DataSource dataSource(DataSourceProperties properties) { // 自动创建 DataSource Bean return properties.initializeDataSourceBui