java引入bean代码_通过java代码装配bean
importorg.springframework.beans.factory.annotation.Qualifier;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;/** Spring 的組件掃描默認是不啟用的,需要顯式配置啟用組件掃描去尋找被 @Component 注解修飾的組件類,并為其創建 bean 實例。
**/
/** 標記類 CDPlayerConfig 是 Spring 的配置類,通過 java 代碼定義 Spring 的裝配規則。
* 該類應該包含在Spring應用上下文中如何創建bean的細節。
**/@Configurationpublic classCDPlayerConfig {/** 要在 JavaConfig 中聲明 bean ,我們需要編寫一個方法,這個方法會創建所需類型的實例,然后給這個方法添加 @Bean 注解。
*
* @Bean 注解會告訴 Spring 這個方法將會返回一個對象,該對象要注冊為 Spring 應用上下文中的 bean 。
* 方法體中包含了最終產生 bean 實例的邏輯。
*
* 默認,bean 的 ID 和方法名是一樣的,如下 bean 的 ID 為 sgtPeppers 。
* 如果想手動為 bean 指定一個 ID ,可以使用 @Bean 的 name 屬性,如:
* @Bean(name="lonelyHeartsClubBand") **/@BeanpublicCompactDisc sgtPeppers() {return newSgtPeppers();
}//這里是使用 Java 創建 bean,因此我們可以發揮 Java 提供的所有功能,只要最終生成一個 CompactDisc 實例即可。例如:
@BeanpublicCompactDisc randomBeatlesCD() {
CompactDisc cd;int choice = (int) Math.floor(Math.random() * 4);switch(choice) {case 1:
cd= newSgtPeppers();break;case 2:
cd= newWhiteAlbum();break;case 3:
cd= newHardDaysNight();break;default:
cd= newRevolver();break;
}returncd;
}/** Spring 裝配方式一:
* 在JavaConfig中裝配bean的最簡單方式就是引用創建bean的方法。
**/@BeanpublicCDPlayer cdPlayer() {//return new CDPlayer(sgtPeppers());
return new CDPlayer(newWhiteAlbum());
}/** Spring 裝配方式二:
* 當 Spring 調用 cdPlayer() 創建 CDPlayer bean 的時候,它會自動裝配一個 CompactDisc 到配置方法之中。
* 然后,方法體就可以按照合適的方式來使用它。
*
* 通過這種方式引用其他的 bean 通常是最佳的選擇,因為它不會要求將 CompactDisc 聲明到同一個配置類之中。
* 在這里甚至沒有要求 CompactDisc 必須要在 JavaConfig 中聲明,
* 實際上它可以通過組件掃描功能自動發現或者通過 XML 來進行配置。
* 你可以將配置分散到多個配置類、XML 文件以及自動掃描和裝配 bean 之中,
* 只要功能完整健全即可。不管 CompactDisc 是采用什么方式創建出來的,
* Spring 都會將其傳入到配置方法中,并用來創建 CDPlayer bean 。
*
* 當配置類中有多個同類型的 bean 時,此時可以使用 @Qualifier 注解來指定參數注入的是哪一個具體的 bean 。 **/@Beanpublic CDPlayer cdPlayer(@Qualifier("randomBeatlesCD") CompactDisc compactDisc) {return newCDPlayer(compactDisc);
}/** 我們也可以采用屬性賦值的方式來注入依賴值,這里所存在的可能性僅僅受到Java語言的限制。
**/
//@Bean//public CDPlayer cdPlayer(@Qualifier("sgtPeppers") CompactDisc compactDisc) {//CDPlayer cdPlayer = new CDPlayer();//cdPlayer.setCd(compactDisc);//return cdPlayer;//}
}
總結
以上是生活随笔為你收集整理的java引入bean代码_通过java代码装配bean的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python文件writelines_p
- 下一篇: MATLAB仿真TSC在哪里找,-bas