spring test + Junit方式:
pox.xml
<code><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"UTF-8"</code><code>?></code>
<code><</code><code>project</code> <code>xmlns</code><code>=</code><code>"http://maven.apache.org/POM/4.0.0"</code>
<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/XMLSchema-instance"</code>
<code> </code><code>xsi:schemaLocation</code><code>=</code><code>"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</code><code>></code>
<code> </code><code><</code><code>modelVersion</code><code>>4.0.0</</code><code>modelVersion</code><code>></code>
<code> </code><code><</code><code>groupId</code><code>>com.try2better</</code><code>groupId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>spring</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.0-SNAPSHOT</</code><code>version</code><code>></code>
<code> </code><code><</code><code>properties</code><code>></code>
<code> </code><code><</code><code>spring.version</code><code>>4.3.9.RELEASE</</code><code>spring.version</code><code>></code>
<code> </code><code></</code><code>properties</code><code>></code>
<code> </code><code><</code><code>dependencies</code><code>></code>
<code> </code><code><</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>groupId</code><code>>org.springframework</</code><code>groupId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>spring-context</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${spring.version}</</code><code>version</code><code>></code>
<code> </code><code></</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>spring-aop</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>spring-core</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>spring-test</</code><code>artifactId</code><code>></code>
<code> </code><code><!-- https://mvnrepository.com/artifact/junit/junit --></code>
<code> </code><code><</code><code>groupId</code><code>>junit</</code><code>groupId</code><code>></code>
<code> </code><code><</code><code>artifactId</code><code>>junit</</code><code>artifactId</code><code>></code>
<code> </code><code><</code><code>version</code><code>>4.12</</code><code>version</code><code>></code>
<code> </code><code><</code><code>scope</code><code>>test</</code><code>scope</code><code>></code>
<code> </code><code><!-- spring end --></code>
<code> </code><code></</code><code>dependencies</code><code>></code>
<code></</code><code>project</code><code>></code>
Java:
<code>package</code> <code>beans;</code>
<code>import</code> <code>java.util.Arrays;</code>
<code>import</code> <code>java.util.List;</code>
<code>import</code> <code>java.util.Map;</code>
<code>import</code> <code>java.util.Properties;</code>
<code>import</code> <code>java.util.Set;</code>
<code>/*</code>
<code> </code><code>* DESCRIPTION : </code>
<code> </code><code>* USER : zhouhui</code>
<code> </code><code>* DATE : 2017/8/10 15:49</code>
<code> </code><code>*/</code>
<code>public</code> <code>class</code> <code>Bean {</code>
<code> </code><code>private</code> <code>Integer inte;</code>
<code> </code><code>private</code> <code>String str;</code>
<code> </code><code>private</code> <code>String[] strArr;</code>
<code> </code><code>private</code> <code>Boss boss;</code>
<code> </code><code>private</code> <code>List<String> list;</code>
<code> </code><code>private</code> <code>Set<String> set;</code>
<code> </code><code>private</code> <code>Map<String,Boss> map;</code>
<code> </code><code>//Properties和Map的差別是,Properties隻能接受key和value都是String</code>
<code> </code><code>private</code> <code>Properties properties;</code>
<code> </code><code>public</code> <code>Integer getInte() {</code>
<code> </code><code>return</code> <code>inte;</code>
<code> </code><code>}</code>
<code> </code><code>public</code> <code>void</code> <code>setInte(Integer inte) {</code>
<code> </code><code>this</code><code>.inte = inte;</code>
<code> </code><code>public</code> <code>String getStr() {</code>
<code> </code><code>return</code> <code>str;</code>
<code> </code><code>public</code> <code>void</code> <code>setStr(String str) {</code>
<code> </code><code>this</code><code>.str = str;</code>
<code> </code><code>public</code> <code>String[] getStrArr() {</code>
<code> </code><code>return</code> <code>strArr;</code>
<code> </code><code>public</code> <code>void</code> <code>setStrArr(String[] strArr) {</code>
<code> </code><code>this</code><code>.strArr = strArr;</code>
<code> </code><code>public</code> <code>Boss getBoss() {</code>
<code> </code><code>return</code> <code>boss;</code>
<code> </code><code>public</code> <code>void</code> <code>setBoss(Boss boss) {</code>
<code> </code><code>this</code><code>.boss = boss;</code>
<code> </code><code>public</code> <code>List<String> getList() {</code>
<code> </code><code>return</code> <code>list;</code>
<code> </code><code>public</code> <code>void</code> <code>setList(List<String> list) {</code>
<code> </code><code>this</code><code>.list = list;</code>
<code> </code><code>public</code> <code>Set<String> getSet() {</code>
<code> </code><code>return</code> <code>set;</code>
<code> </code><code>public</code> <code>void</code> <code>setSet(Set<String> set) {</code>
<code> </code><code>this</code><code>.set = set;</code>
<code> </code><code>public</code> <code>Map<String, Boss> getMap() {</code>
<code> </code><code>return</code> <code>map;</code>
<code> </code><code>public</code> <code>void</code> <code>setMap(Map<String, Boss> map) {</code>
<code> </code><code>this</code><code>.map = map;</code>
<code> </code><code>public</code> <code>Properties getProperties() {</code>
<code> </code><code>return</code> <code>properties;</code>
<code> </code><code>public</code> <code>void</code> <code>setProperties(Properties properties) {</code>
<code> </code><code>this</code><code>.properties = properties;</code>
<code> </code><code>@Override</code>
<code> </code><code>public</code> <code>String toString() {</code>
<code> </code><code>return</code> <code>"Bean{"</code> <code>+</code>
<code> </code><code>"inte="</code> <code>+ inte +</code>
<code> </code><code>", str='"</code> <code>+ str + '\</code><code>''</code> <code>+</code>
<code> </code><code>", strArr="</code> <code>+ Arrays.toString(strArr) +</code>
<code> </code><code>", boss="</code> <code>+ boss +</code>
<code> </code><code>", list="</code> <code>+ list +</code>
<code> </code><code>", set="</code> <code>+ set +</code>
<code> </code><code>", map="</code> <code>+ map +</code>
<code> </code><code>", properties="</code> <code>+ properties +</code>
<code> </code><code>'}'</code><code>;</code>
<code>}</code>
實體:
<code> </code><code>* DATE : 2017/8/10 11:19</code>
<code>public</code> <code>class</code> <code>Boss {</code>
<code> </code><code>private</code> <code>String name;</code>
<code> </code><code>private</code> <code>Integer age;</code>
<code> </code><code>private</code> <code>Boolean isMale;</code>
<code> </code><code>public</code> <code>Boss() {</code>
<code> </code><code>public</code> <code>Boss(String name, Integer age, Boolean isMale) {</code>
<code> </code><code>this</code><code>.name = name;</code>
<code> </code><code>this</code><code>.age = age;</code>
<code> </code><code>this</code><code>.isMale = isMale;</code>
<code> </code><code>public</code> <code>String getName() {</code>
<code> </code><code>return</code> <code>name;</code>
<code> </code><code>public</code> <code>void</code> <code>setName(String name) {</code>
<code> </code><code>public</code> <code>Integer getAge() {</code>
<code> </code><code>return</code> <code>age;</code>
<code> </code><code>public</code> <code>void</code> <code>setAge(Integer age) {</code>
<code> </code><code>public</code> <code>Boolean getMale() {</code>
<code> </code><code>return</code> <code>isMale;</code>
<code> </code><code>public</code> <code>void</code> <code>setMale(Boolean male) {</code>
<code> </code><code>isMale = male;</code>
<code> </code><code>return</code> <code>"Boss{"</code> <code>+</code>
<code> </code><code>"name='"</code> <code>+ name + '\</code><code>''</code> <code>+</code>
<code> </code><code>", age="</code> <code>+ age +</code>
<code> </code><code>", isMale="</code> <code>+ isMale +</code>
spring xml:
<code><</code><code>beans</code> <code>xmlns</code><code>=</code><code>"http://www.springframework.org/schema/beans"</code>
<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/XMLSchema-instance"</code>
<code> </code><code>xsi:schemaLocation</code><code>=</code><code>"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"</code><code>></code>
<code> </code><code><</code><code>import</code> <code>resource</code><code>=</code><code>"bean.xml"</code><code>/></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"boss"</code> <code>class</code><code>=</code><code>"beans.Boss"</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"age"</code> <code>value</code><code>=</code><code>"10"</code><code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"male"</code> <code>value</code><code>=</code><code>"false"</code><code>/></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"name"</code> <code>value</code><code>=</code><code>"zhouhui"</code><code>/></code>
<code> </code><code></</code><code>bean</code><code>></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"boss2"</code> <code>class</code><code>=</code><code>"beans.Boss"</code> <code>scope</code><code>=</code><code>"singleton"</code><code>></code>
<code> </code><code><</code><code>constructor-arg</code> <code>name</code><code>=</code><code>"age"</code> <code>value</code><code>=</code><code>"11"</code><code>/></code>
<code> </code><code><</code><code>constructor-arg</code> <code>name</code><code>=</code><code>"name"</code> <code>value</code><code>=</code><code>"zhouhui2"</code><code>/></code>
<code> </code><code><</code><code>constructor-arg</code> <code>name</code><code>=</code><code>"isMale"</code> <code>value</code><code>=</code><code>"true"</code><code>/></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"boss3"</code> <code>class</code><code>=</code><code>"beans.Boss"</code><code>></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"bossService"</code> <code>class</code><code>=</code><code>"impl.BossServiceImpl"</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"boss"</code> <code>ref</code><code>=</code><code>"boss2"</code><code>></</code><code>property</code><code>></code>
<code></</code><code>beans</code><code>></code>
bean xml:
<code> </code><code><!-- boss對象的bean --></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"myBoss"</code> <code>class</code><code>=</code><code>"beans.Boss"</code><code>></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"bean"</code> <code>class</code><code>=</code><code>"beans.Bean"</code><code>></code>
<code> </code><code><!-- private Boss boss; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"boss"</code> <code>ref</code><code>=</code><code>"myBoss"</code><code>/></code>
<code> </code><code><!-- private Integer inte; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"inte"</code> <code>value</code><code>=</code><code>"1"</code><code>/></code>
<code> </code><code><!-- private String str; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"str"</code> <code>value</code><code>=</code><code>"hello world"</code><code>/></code>
<code> </code><code><!-- private String[] strArr; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"strArr"</code><code>></code>
<code> </code><code><</code><code>list</code><code>></code>
<code> </code><code><</code><code>value</code><code>>NO.1</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>NO.2</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>NO.3</</code><code>value</code><code>></code>
<code> </code><code></</code><code>list</code><code>></code>
<code> </code><code></</code><code>property</code><code>></code>
<code> </code><code><!-- private List<String> list; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"list"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>INDEX 1</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>INDEX 2</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>INDEX 3</</code><code>value</code><code>></code>
<code> </code><code><!-- private Map<String,Boss> map; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"map"</code><code>></code>
<code> </code><code><</code><code>map</code><code>></code>
<code> </code><code><</code><code>entry</code> <code>key</code><code>=</code><code>"entity 1"</code> <code>value-ref</code><code>=</code><code>"myBoss"</code><code>></</code><code>entry</code><code>></code>
<code> </code><code><</code><code>entry</code> <code>key</code><code>=</code><code>"entity 2"</code> <code>value-ref</code><code>=</code><code>"myBoss"</code><code>></</code><code>entry</code><code>></code>
<code> </code><code><</code><code>entry</code> <code>key</code><code>=</code><code>"entity 3"</code> <code>value-ref</code><code>=</code><code>"myBoss"</code><code>></</code><code>entry</code><code>></code>
<code> </code><code></</code><code>map</code><code>></code>
<code> </code><code><!-- private Set<String> set; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"set"</code><code>></code>
<code> </code><code><</code><code>set</code><code>></code>
<code> </code><code><</code><code>value</code><code>>set 1</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>set 2</</code><code>value</code><code>></code>
<code> </code><code><</code><code>value</code><code>>set 3</</code><code>value</code><code>></code>
<code> </code><code></</code><code>set</code><code>></code>
<code> </code><code><!-- private Properties properties; --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"properties"</code><code>></code>
<code> </code><code><</code><code>props</code><code>></code>
<code> </code><code><</code><code>prop</code> <code>key</code><code>=</code><code>"key1"</code><code>>value1</</code><code>prop</code><code>></code>
<code> </code><code><</code><code>prop</code> <code>key</code><code>=</code><code>"key2"</code><code>>value2</</code><code>prop</code><code>></code>
<code> </code><code><</code><code>prop</code> <code>key</code><code>=</code><code>"key3"</code><code>>value3</</code><code>prop</code><code>></code>
<code> </code><code></</code><code>props</code><code>></code>
對于數組的注入,使用<list><value>NO.1</value><value>NO.2</value><value>NO.3</value></list> 和 <array> <value>NO.1</value><value>NO.2</value><value>NO.3</value></array>是等同的。
測試類:
<code>package</code> <code>test;</code>
<code>import</code> <code>org.junit.Test;</code>
<code>import</code> <code>org.junit.runner.RunWith;</code>
<code>import</code> <code>org.springframework.beans.factory.annotation.Autowired;</code>
<code>import</code> <code>org.springframework.test.context.ContextConfiguration;</code>
<code>import</code> <code>org.springframework.test.context.junit4.SpringJUnit4ClassRunner;</code>
<code>import</code> <code>javax.annotation.Resource;</code>
<code>import</code> <code>beans.Bean;</code>
<code>import</code> <code>beans.Boss;</code>
<code>import</code> <code>business.BossService;</code>
<code> </code><code>* DESCRIPTION :</code>
<code> </code><code>* DATE : 2017/8/10 11:25</code>
<code>@RunWith(SpringJUnit4ClassRunner.class)</code>
<code>@ContextConfiguration(locations = { "classpath*:spring-content.xml" })</code>
<code>public class TestSpringBeans {</code>
<code> </code><code>@Resource(name = "boss3")</code>
<code> </code><code>private Boss boss;</code>
<code> </code><code>@Autowired</code>
<code> </code><code>private Boss boss2;</code>
<code> </code><code>private Boss boss3;</code>
<code> </code><code>private BossService bossService;</code>
<code> </code><code>private Bean bean;</code>
<code> </code><code>/**</code>
<code> </code><code>* @Autowired 是根據bean的id,完全比對注入</code>
<code> </code><code>* @Resource(name = "boss3") 指定nid比對注入</code>
<code> </code><code>*/</code>
<code> </code><code>@org.junit.Test</code>
<code> </code><code>public void test(){</code>
<code> </code><code>System.out.println("============test===============");</code>
<code> </code><code>System.out.println(boss.toString());</code>
<code> </code><code>System.out.println(boss2.toString());</code>
<code> </code><code>System.out.println(boss3.toString());</code>
<code> </code><code>//預設是單例的,如果需要是多例的需要設定scope="singleton"</code>
<code> </code><code>System.out.println(boss == boss2);</code>
<code> </code><code>System.out.println("=============test==============");</code>
<code> </code><code>* 測試接口的注入,必須在xml種指定實作,不然Java中不予許對interface進行@Autowired</code>
<code> </code><code>@Test</code>
<code> </code><code>public void testInterface(){</code>
<code> </code><code>System.out.println("============testInterface===============");</code>
<code> </code><code>System.out.println(bossService.getBossEntity());</code>
<code> </code><code>* 對數組 集合等各種類型的屬性進行注入</code>
<code> </code><code>public</code> <code>void</code> <code>testBean(){</code>
<code> </code><code>System.out.println(</code><code>"===========testBean================"</code><code>);</code>
<code> </code><code>System.out.println(bean);</code>
執行結果:
<code>============test===============</code>
<code>Boss{name=</code><code>'null'</code><code>, age=</code><code>null</code><code>, isMale=</code><code>null</code><code>}</code>
<code>Boss{name=</code><code>'zhouhui2'</code><code>, age=</code><code>11</code><code>, isMale=</code><code>true</code><code>}</code>
<code>false</code>
<code>=============test==============</code>
<code>============testInterface===============</code>
<code>===========testBean================</code>
<code>Bean{inte=</code><code>1</code><code>, str=</code><code>'hello world'</code><code>, strArr=[NO.</code><code>1</code><code>, NO.</code><code>2</code><code>, NO.</code><code>3</code><code>], boss=Boss{name=</code><code>'zhouhui'</code><code>, age=</code><code>10</code><code>, isMale=</code><code>false</code><code>}, list=[INDEX </code><code>1</code><code>, INDEX </code><code>2</code><code>, INDEX </code><code>3</code><code>], set=[set </code><code>1</code><code>, set </code><code>2</code><code>, set </code><code>3</code><code>], map={entity </code><code>1</code><code>=Boss{name=</code><code>'zhouhui'</code><code>, age=</code><code>10</code><code>, isMale=</code><code>false</code><code>}, entity </code><code>2</code><code>=Boss{name=</code><code>'zhouhui'</code><code>, age=</code><code>10</code><code>, isMale=</code><code>false</code><code>}, entity </code><code>3</code><code>=Boss{name=</code><code>'zhouhui'</code><code>, age=</code><code>10</code><code>, isMale=</code><code>false</code><code>}}, properties={key3=value3, key2=value2, key1=value1}}</code>
本文轉自 斯然在天邊 51CTO部落格,原文連結:http://blog.51cto.com/13172906/1955195,如需轉載請自行聯系原作者