Spring裝配之——JAVA程式碼裝配Bean
阿新 • • 發佈:2018-12-18
首先建立幾個普通的JAVA物件,用於測試JAVA程式碼裝配bean的功能。
1 package soundsystemJava; 2 3 //作為介面 定義了CD播放器對一盤CD所能進行的操作 4 public interface CD { 5 void play(); 6 }View Code
1 package soundsystemJava; 2 //介面的一個實現 3 public class CDTest1 implements CD { 4 5 private String title = "十一月的肖邦";View Code6 private String artist = "JayZhou"; 7 8 public void play() { 9 System.out.println("正在播放:" + title + ",由" + artist + "演唱"); 10 } 11 }
1 package soundsystemJava; 2 //播放CD 3 public class CDPlayer { 4 private CD cd; 5 public CDPlayer(CD cd) {View Code6 this.cd = cd; 7 } 8 9 public void play() { 10 cd.play(); 11 } 12 }
準備工作做好之後,我們現在利用JAVA程式碼來裝配bean:
1 package soundsystemJava; 2 3 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.Configuration;View Code5 6 @Configuration 7 public class CDPlayerConfig { 8 //@Bean 註解會告訴Spring這個方法將會返回一個物件 9 //方法體中可包含最終產生bea例項的邏輯 10 //預設情況下,bean的ID與方法名一樣 11 //@Bean(name="....")指定其他的名字 12 @Bean 13 public CD cdTest1() { 14 return new CDTest1(); 15 } 16 17 //注入方式之一 18 /*@Bean 19 public CDPlayer cdPlayer() { 20 return new CDPlayer(cdTest1()); 21 }*/ 22 23 //注入方式之二 通常是引用其他bean的最佳選擇 24 @Bean 25 public CDPlayer cdPlayer(CD cd) { 26 return new CDPlayer(cd); 27 } 28 }
進行簡單的JUnit測試:
1 package soundsystemJava; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 import org.junit.runner.RunWith; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.test.context.ContextConfiguration; 9 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 10 11 //用於在測試開始時自動建立Spring上下文 12 @RunWith(SpringJUnit4ClassRunner.class) 13 //告訴上下文需要在CDPlayerConfig中載入配置 14 @ContextConfiguration(classes = { CDPlayerConfig.class }) 15 public class CDPlayerTest { 16 //自動裝配 17 @Autowired 18 private CDPlayer player; 19 20 @Autowired 21 private CD cd; 22 23 @Test 24 public void cdShoildNotBeNull() { 25 assertNotNull(cd); 26 } 27 28 @Test 29 public void play() { 30 player.play(); 31 } 32 }View Code
測試結果:
正在播放:十一月的肖邦,由JayZhou演唱
通過測試,裝配成功。