spring test + Junit方式:
pox.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.try2better</groupId>
<artifactId>spring</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spring.version>4.3.9.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- spring end -->
</dependencies>
</project>Java:
package beans;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/*
* DESCRIPTION :
* USER : zhouhui
* DATE : 2017/8/10 15:49
*/
public class Bean {
private Integer inte;
private String str;
private String[] strArr;
private Boss boss;
private List<String> list;
private Set<String> set;
private Map<String,Boss> map;
//Properties和Map的区别是,Properties只能接受key和value都是String
private Properties properties;
public Integer getInte() {
return inte;
}
public void setInte(Integer inte) {
this.inte = inte;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public String[] getStrArr() {
return strArr;
}
public void setStrArr(String[] strArr) {
this.strArr = strArr;
}
public Boss getBoss() {
return boss;
}
public void setBoss(Boss boss) {
this.boss = boss;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Set<String> getSet() {
return set;
}
public void setSet(Set<String> set) {
this.set = set;
}
public Map<String, Boss> getMap() {
return map;
}
public void setMap(Map<String, Boss> map) {
this.map = map;
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
@Override
public String toString() {
return "Bean{" +
"inte=" + inte +
", str=‘" + str + ‘\‘‘ +
", strArr=" + Arrays.toString(strArr) +
", boss=" + boss +
", list=" + list +
", set=" + set +
", map=" + map +
", properties=" + properties +
‘}‘;
}
}实体:
package beans;
/*
* DESCRIPTION :
* USER : zhouhui
* DATE : 2017/8/10 11:19
*/
public class Boss {
private String name;
private Integer age;
private Boolean isMale;
public Boss() {
}
public Boss(String name, Integer age, Boolean isMale) {
this.name = name;
this.age = age;
this.isMale = isMale;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getMale() {
return isMale;
}
public void setMale(Boolean male) {
isMale = male;
}
@Override
public String toString() {
return "Boss{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
", isMale=" + isMale +
‘}‘;
}
}spring xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="bean.xml"/> <bean id="boss" class="beans.Boss"> <property name="age" value="10"/> <property name="male" value="false"/> <property name="name" value="zhouhui"/> </bean> <bean id="boss2" class="beans.Boss" scope="singleton"> <constructor-arg name="age" value="11"/> <constructor-arg name="name" value="zhouhui2"/> <constructor-arg name="isMale" value="true"/> </bean> <bean id="boss3" class="beans.Boss"> </bean> <bean id="bossService" class="impl.BossServiceImpl"> <property name="boss" ref="boss2"></property> </bean> </beans>
bean xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- boss对象的bean --> <bean id="myBoss" class="beans.Boss"> <property name="age" value="10"/> <property name="male" value="false"/> <property name="name" value="zhouhui"/> </bean> <bean id="bean" class="beans.Bean"> <!-- private Boss boss; --> <property name="boss" ref="myBoss"/> <!-- private Integer inte; --> <property name="inte" value="1"/> <!-- private String str; --> <property name="str" value="hello world"/> <!-- private String[] strArr; --> <property name="strArr"> <list> <value>NO.1</value> <value>NO.2</value> <value>NO.3</value> </list> </property> <!-- private List<String> list; --> <property name="list"> <list> <value>INDEX 1</value> <value>INDEX 2</value> <value>INDEX 3</value> </list> </property> <!-- private Map<String,Boss> map; --> <property name="map"> <map> <entry key="entity 1" value-ref="myBoss"></entry> <entry key="entity 2" value-ref="myBoss"></entry> <entry key="entity 3" value-ref="myBoss"></entry> </map> </property> <!-- private Set<String> set; --> <property name="set"> <set> <value>set 1</value> <value>set 2</value> <value>set 3</value> </set> </property> <!-- private Properties properties; --> <property name="properties"> <props> <prop key="key1">value1</prop> <prop key="key2">value2</prop> <prop key="key3">value3</prop> </props> </property> </bean> </beans>
测试类:
package test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import beans.Bean;
import beans.Boss;
import business.BossService;
/*
* DESCRIPTION :
* USER : zhouhui
* DATE : 2017/8/10 11:25
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:spring-content.xml" })
public class TestSpringBeans {
@Resource(name = "boss3")
private Boss boss;
@Autowired
private Boss boss2;
@Autowired
private Boss boss3;
@Autowired
private BossService bossService;
@Autowired
private Bean bean;
/**
* @Autowired 是根据bean的id,完全匹配注入
* @Resource(name = "boss3") 指定nid匹配注入
*/
@org.junit.Test
public void test(){
System.out.println("============test===============");
System.out.println(boss.toString());
System.out.println(boss2.toString());
System.out.println(boss3.toString());
//默认是单例的,如果需要是多例的需要设置scope="singleton"
System.out.println(boss == boss2);
System.out.println("=============test==============");
}
/**
* 测试接口的注入,必须在xml种指定实现,不然Java中不予许对interface进行@Autowired
*/
@Test
public void testInterface(){
System.out.println("============testInterface===============");
System.out.println(bossService.getBossEntity());
System.out.println("============testInterface===============");
}
/**
* 对数组 集合等各种类型的属性进行注入
*/
@Test
public void testBean(){
System.out.println("===========testBean================");
System.out.println(bean);
System.out.println("===========testBean================");
}
}执行结果:
============test===============
Boss{name=‘null‘, age=null, isMale=null}
Boss{name=‘zhouhui2‘, age=11, isMale=true}
Boss{name=‘null‘, age=null, isMale=null}
false
=============test==============
============testInterface===============
Boss{name=‘zhouhui2‘, age=11, isMale=true}
============testInterface===============
===========testBean================
Bean{inte=1, str=‘hello world‘, strArr=[NO.1, NO.2, NO.3], boss=Boss{name=‘zhouhui‘, age=10, isMale=false}, list=[INDEX 1, INDEX 2, INDEX 3], set=[set 1, set 2, set 3], map={entity 1=Boss{name=‘zhouhui‘, age=10, isMale=false}, entity 2=Boss{name=‘zhouhui‘, age=10, isMale=false}, entity 3=Boss{name=‘zhouhui‘, age=10, isMale=false}}, properties={key3=value3, key2=value2, key1=value1}}
===========testBean================原文:http://13172906.blog.51cto.com/13162906/1955195