最重要的是,“Auto”前綴背后的原因是什么?使用 @Configuration 而不是 @AutoConfiguration 注釋的類不那么自動或什么?
uj5u.com熱心網友回復:
@Configuration是一個 spring 框架注解,并不嚴格系結到spring-boot. 它是在 spring 開始允許spring-beans從xmlbean 的定義中以編程方式創建 as 時引入的。
@AutoConfiguration是spring-bootspring框架中不常用的特定注解。它存在的原因是,與合作的外部提供者spring-boot能夠在他們提供的一些庫中標記一些類,以通知spring-boot這些類可以在 spring 應用程式啟動期間自動決議并進行一些初始化。
因此,如果某個開發某些應用程式的普通程式員碰巧有kafka依賴關系,那么一些 bean 將自動創建并添加到應用程式背景關系中,并準備好供程式員使用,盡管他沒有為它們定義任何配置。Spring-boot已經知道這一點,因為kafka提供者已經通過在他們提供的帶有注釋的 jar 中標記一些類來通知這一點@AutoConfiguration。
出于這個原因@AutoConfiguration,有一些更強大的配置可用before, after, beforeName,afterName以允許提供者指定在應用程式啟動期間應用配置的時間(如果需要某些順序)。
因此,某些使用spring-boot. 它適用于開發其他用戶可能使用的庫的人spring-boot。一個這樣的例子是kafka圖書館。
為此作業spring-boot需要@EnableAutoConfiguration。
來自彈簧檔案
Spring Boot 自動配置嘗試根據您添加的 jar 依賴項自動配置您的 Spring 應用程式。例如,如果 HSQLDB 在你的類路徑上,并且你沒有手動配置任何資料庫連接 bean,那么 Spring Boot 會自動配置一個記憶體資料庫。
@Configuration而是由一些開發應用程式的常規程式員使用,spring-boot或者spring-framework通知框架應該創建哪些 bean 以及如何創建。
uj5u.com熱心網友回復:
@AutoConfiguration在 2.7 中引入的想法是使用其專用注釋標記所有自動配置,并在 3.0 中遠離spring.factories自動配置匯入,如Github issue中所述。
根據Spring 檔案:
[@AutoConfiguration] 表示一個類提供了 Spring Boot 可以自動應用的配置。自動配置類是常規的@Configuration,除了 Configuration#proxyBeanMethods() proxyBeanMethods 始終為 false。
通常,@AutoConfiguration類會根據類路徑中存在的依賴關系自動配置應用程式。這些類通常被標記為@ConditionalOnClass和@ConditionalOnMissingBean注釋,用于檢測特定類的存在或不存在。
此外,如果需要按特定順序應用配置,您可以在 上使用before、beforeName、after和afterName屬性@AutoConfiguration,@Configuration這與不提供這些屬性不同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/518068.html
標籤:春天弹簧靴
