Spring Boot 的自动配置

79 阅读1分钟

Spring Boot 的自动配置是通过 @EnableAutoConfiguration 注解来实现的,这个注解的核心功能由 @Import 提供。具体实现中使用了 AutoConfigurationImportSelector 类的 selectImports() 方法。该方法通过 SpringFactoriesLoader.loadFactoryNames() 来扫描所有包含 META-INF/spring.factories 文件的 JAR 包。spring.factories 文件是一组以 key=value 形式配置的数据,其中一个 key 是 EnableAutoConfiguration 类的全类名,对应的 value 是一组 xxxxAutoConfiguration 类的全类名,这些类名以逗号分隔。这样的配置使得 @EnableAutoConfiguration 注解间接地标记在了 Spring Boot 的启动类上,通常是被 @SpringBootApplication 注解标记。

在执行 SpringApplication.run(...) 方法时,会内部调用 AutoConfigurationImportSelectorselectImports() 方法,该方法会找到所有 JavaConfig 自动配置类的全限定名,并将它们加载到 Spring 容器中。这个机制使得 Spring Boot 能够在启动时根据项目的依赖和配置自动完成一系列的配置工作,减轻了负担,更专注于业务逻辑的开发。