1. 程式人生 > >Spring裝配bean--02通過Java代碼裝配bean

Spring裝配bean--02通過Java代碼裝配bean

三方 應用 context his 單獨 stc ring -- oid

Spring容器負責創建應用程序中的bean並通過DI來協調這些對象之間的關系

Spring提供了三種主要的裝配機制:

  • 在XML中進行顯式配置
  • 在Java中進行顯式配置
  • 隱式的bean發現機制和自動裝配

2在Java中顯式配置

盡管在很多場景下通過組件掃描和自動裝配實現Spring的自動化裝配是更為推薦的方式,但是當你要將第三方庫中的組件裝配到你的應用中,這時就必須顯式的配置bean

顯式配置包括:Java和XML,我更推薦使用Java類配置,就像上文中的JavaConfig那樣

JavaConfig與其它的Java代碼又有所區別,JavaConfig僅僅是配置代碼,這意味著它不包含任何業務邏輯,通常將JavaConfig放到單獨的包中,使其與程序邏輯分離開來

聲明簡單的bean

在JavaConfig 中聲明bean,我們需要編寫一個方法,這個方法會返回所需類型的一個實例(對象),然後給這個方法添加@Bean註解

1 CD類
@Component("cd1")//括號內給該bean設置ID,若不設置則默認為類名首字母小寫即cD
public class CD 
{
    private String title = "最炫民族風";
    private String artist = "鳳凰傳奇";
    
    public void play()
    {
    	System.out.println("當前播放: " + title + " 演唱者: " + artist);
    }
}

2 CDplayer 播放器
@Component("cdPlayer")
public class CDplayer 
{
	
    private CD cd;
    
    @Autowired
    public CDplayer(CD cd)
    {
    	this.cd = cd;
    }
    public void play()
    {
    	cd.play();
    }
}

3 JavaConfig配置類
@Component
public class JavaConfig 
{
    @Bean//在不聲明bean ID的情況下  默認 方法名 為 bean的ID getCD
    public CD getCD()
    {
    	return new CD();
    }
    
    @Bean//bean ID為getCDplayer
    public CDplayer getCDplayer(CD cd)   //以參數的形式註入所需要的 CD類實例
    {
    	return new CDplayer(cd);
    }
}

4 測試類
public class TestCase 
{
    @Test
    public void test01()
    {
    	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
    	CDplayer cp = (CDplayer) context.getBean("getCDplayer");
    	cp.play();
    }
}

5 console控制臺結果

當前播放: 最炫民族風 演唱者: 鳳凰傳奇

Spring裝配bean--02通過Java代碼裝配bean