摘要:以及其中的注解注解從定義來看注解是用注解的因此或者都能處理注解的類注解的類中可以聲明一個或多個注解的方法并且可以由容器幫我們管理方法可以直接調用同一類中的其他方法來引用它們這也說明這種方式使用的是同一個注在運行時對每個這樣的配置類進行子類
@Configuration 以及其中的 @Bean 注解
@Configuration 注解:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Configuration { String value() default ""; }
從定義來看, @Configuration 注解是用 @Component 注解的, 因此
@Configuration 注解的類中可以聲明一個或多個 @Bean 注解的方法. 并且可以由 Spring 容器幫我們管理.
@Configuration public class AppConfig { @Bean public MyBean myBean() { // instantiate, configure and return bean ... } }
userInfo() 方法可以直接調用同一類中的其他 @Bean 方法來引用它們. 這也說明這種方式使用的是同一個 bean.
@Configuration public class MyBeanConfig { @Bean public Country country(){ return new Country(); } @Bean public UserInfo userInfo(){ return new UserInfo(country()); } }
注: 在運行時對每個這樣的配置類(@Configuration)進行CGLIB子類化. 因此 @Configuration 類及其工廠方法不能標記為 final 或 private.
@Configuration 標記的類必須符合下面的要求:
配置類必須以類的形式提供(不能是工廠方法返回的實例), 允許通過生成子類在運行時增強 (cglib 動態代理).
配置類不能是 final 類 (沒法動態代理).
配置類必須是非本地的 (即不能在方法中聲明)
任何嵌套配置類都必須聲明為static。
@Bean 方法可能不會反過來創建進一步的配置類 (也就是返回的 bean 如果帶有 @Configuration, 也不會被特殊處理, 只會作為普通的 bean).
@Bean Lite Mode@Bean 注解也可以在沒有使用 @Configuration 注解的類中聲明. 例如, 可以在 @Component 類中聲明, 甚至可以在普通的舊類中聲明. 在這種情況下, @Bean方法將以所謂的“lite”模式進行處理.
@Component public class Calculator { public int sum(int a, int b) { return a+b; } @Bean public MyBean myBean() { return new MyBean(); } }
與 @Configuration 中的 bean 是相反的, 當一個 @Bean 方法在lite模式下調用另一個 @Bean 方法時, 調用是標準的Java方法調用; Spring不會通過CGLIB代理攔截調用.
@Component public class MyBeanConfig { @Bean public Country country(){ return new Country(); } @Bean public UserInfo userInfo(){ return new UserInfo(country()); } }
在lite模式下每執行一次 new UserInfo(country()); 都會創建一個新的 Country 對象, 這就是上面所說標準的Java方法調用.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77422.html
摘要:用法先創建個組件,,,分別在類上加上注解。發現有一個屬性源碼注釋這樣說的自動檢測使用組件。在的方法中,表示不匹配,代表匹配。這就說明使用注冊組件有種方式。 Spring注解應用篇--IOC容器Bean組件注冊 這是Spring注解專題系類文章,本系類文章適合Spring入門者或者原理入門者,小編會在本系類文章下進行企業級應用實戰講解以及spring源碼跟進。 環境準備 編譯器IDEA...
摘要:裝配提供了三種裝配機制在中進行顯示配置在中進行顯示配置隱式的發現機制和自動裝配機制。表示該類是一個組件,將自動創建該組件實例,表示注入組件實例,和功能類似,和功能類似,但和是規范中提供的注解。 基本原理 spring的基礎是IOC和DI,其實IOC和DI是對同一件事從不同的方面進行描述的,兩者在spring中是同一件事務。 IOC:控制反轉,在這里就是指創建bean的主動權發生了轉移,...
摘要:關于依賴注入注入的注解提供的注解不僅僅是對象,還有在構造器上,還能用在屬性的方法上。與之相反,的限定符能夠在所有可選的上進行縮小范圍的操作,最終能夠達到只有一個滿足所規定的限制條件。注解是使用限定符的主要方式。 本文首發于泊浮目的專欄:https://segmentfault.com/blog... Spring致力于提供一種方法管理你的業務對象。在大量Java EE的應用中,隨處可...
摘要:因此,引入注解,先看一下配置文件怎么寫注意第行,使用必須告訴一下我要使用注解了,告訴的方式有很多,是一種最簡單的,會自動掃描路徑下的注解。 什么是注解 傳統的Spring做法是使用.xml文件來對bean進行注入或者是配置aop、事物,這么做有兩個缺點: 1、如果所有的內容都配置在.xml文件中,那么.xml文件將會十分龐大;如果按需求分開.xml文件,那么.xml文件又會非常多。總之...
摘要:高級裝配條件化的自動裝配與歧義性的作用域表達式語言環境與可以為不同的環境提供不同的數據庫配置加密算法等注解可以在類級別和方法級別,沒有指定的始終都會被創建的方式配置不同環境所需要的數據庫配置會搭建一個嵌入式的數據庫模式定義在測試數據通過加 高級裝配 Spring profile 條件化的bean 自動裝配與歧義性 bean的作用域 Spring表達式語言 環境與profile p...
閱讀 2866·2021-11-11 10:58
閱讀 1920·2021-10-11 10:59
閱讀 3489·2019-08-29 16:23
閱讀 2324·2019-08-29 11:11
閱讀 2785·2019-08-28 17:59
閱讀 3838·2019-08-27 10:56
閱讀 2049·2019-08-23 18:37
閱讀 3111·2019-08-23 16:53