[英]What @EnableAutoConfiguration actually "auto-configured"?
我正在閱讀Spring 引導文章中的 @ComponentScan 和 @EnableAutoConfiguration 之間的區別。 看到這個:
它會根據類路徑中包含的 jar 文件和我們定義的 bean 自動創建和注冊
beans
。
當我們在類路徑中定義
spring-boot-starter-web
依賴項時,Spring 引導自動配置Tomcat
和Spring MVC
。
我可以理解它基於包含的 jar 文件創建和注冊beans
。 但我無法弄清楚配置了哪些確切的東西。 這是否意味着它將自動執行一些bean? 或者是其他東西? 有沒有其他例子解釋這個?
@EnableAutoConfiguration
開啟自動配置。 自動配置嘗試定位 spring bean,應根據在類路徑中找到的依賴項為您的應用程序配置這些 bean。 Spring 搜索META-INF/spring.factories
文件。 啟用自動配置時,該屬性指向的 class 被加載。
考慮下面來自 spring 源代碼的代碼片段:
@AutoConfiguration(
after = {DataSourceAutoConfiguration.class}
)
@ConditionalOnClass({DataSource.class, JdbcTemplate.class})
@ConditionalOnSingleCandidate(DataSource.class)
@EnableConfigurationProperties({JdbcProperties.class})
@Import({DatabaseInitializationDependencyConfigurer.class,
JdbcTemplateConfiguration.class,
NamedParameterJdbcTemplateConfiguration.class})
public class JdbcTemplateAutoConfiguration {
public JdbcTemplateAutoConfiguration() {
}
}
@ComponentScan
,@ComponentScan 搜索標有原型注釋( @Component
、@ @Controller
、 @Service
Service、@ @Repository
)的應用程序代碼的 bean
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.