目錄
- 目標
- @ConfigurationProperties
- @EnableConfigurationProperties
- @Configuration
- 示例程式碼
- 參考資料(感謝)
目標
- @EnableConfigurationProperties、@ConfigurationProperties、@Configuration 區別和用法
@ConfigurationProperties
- 將我們專案中的 yaml 檔案或者 properties 檔案載入到 bean 物件進行使用
@EnableConfigurationProperties
- @EnableConfigurationProperties 的作用是把 springboot 配置檔案中的值與我們的 xxxProperties.java 的屬性進行繫結,需要配合 @ConfigurationProperties 使用
- @EnableConfigurationProperties 中引用的類一定要加 @ConfigurationProperties 這個註解,並且不需要再新增 @Component 註解,不然會導致被 @ConfigurationProperties 註解的類,在容器中例項化了 2 個 bean 物件
- 容器注入的方法
- @ConfigurationProperties 加 @Configuration 或 @Component
- 透過 @EnableConfigurationProperties 實現
@Configuration
- @Configuration 用於定義配置類,可替換 xml 配置檔案,被註解的類內部包含有一個或多個被 @Bean 註解的方法。這些方法將會被 AnnotationConfigWebApplicationContext 或 AnnotationConfigApplicationContext 類進行掃描,並構建 Bean 定義,初始化 Spring 容器。
- @Configuration 註解作用在類、介面(包含註解)上
- @Configuration 註解作用的類不能是 final 型別
- @Configuration 不可以是匿名類
- @Configuration 註解中有 @Component 註解的加持,因此它自己本身也是一個 bean 物件,可以透過 Context 的進行獲取
- 巢狀的 @Configuration 類必須是 static 的
- @Configuration 註解最常見的搭配使用有兩個:@Bean 和 @Scope
- @Bean:等價於 Spring 中的 bean 標籤用於註冊 bean 物件的,給容器中新增元件,一般以方法名作為元件的 id,配置類裡面使用 @Bean 標註在方法上給容器註冊元件,預設是單例項的
- @Scope:用於宣告該 bean 的作用域,作用域有 singleton、prototype、request、session
示例程式碼
見 https://gitee.com/alfredinchange/springboot.git 下 com.alfred.springboot.configuration
參考資料(感謝)
- @EnableConfigurationProperties 和 @ConfigurationProperties 用法及注意事項