value:
注入基本类型的值,包含String在里面
ref:
注入引用类型的值,用于注入其他bean,后面跟其他bean的id
public class User {
private String name;
private int age;
private String[] arrString;
private int[] arrInt;
private Integer[] arrInteger;
private Set<String> set;
private Map<String, Object> map;
private List<String> list;
private Properties prop;
private Date date;
private Calendar cal;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setArrString(String[] arrString) {
this.arrString = arrString;
}
public void setArrInt(int[] arrInt) {
this.arrInt = arrInt;
}
public void setArrInteger(Integer[] arrInteger) {
this.arrInteger = arrInteger;
}
public void setSet(Set<String> set) {
this.set = set;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public void setList(List<String> list) {
this.list = list;
}
public void setProp(Properties prop) {
this.prop = prop;
}
public void setDate(Date date) {
this.date = date;
}
public void setCal(Calendar cal) {
this.cal = cal;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", arrString=" + Arrays.toString(arrString) +
", arrInt=" + Arrays.toString(arrInt) +
", arrInteger=" + Arrays.toString(arrInteger) +
", set=" + set +
", map=" + map +
", list=" + list +
", prop=" + prop +
", date=" + date +
", cal=" + cal +
'}';
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="calendar" class="java.util.Calendar" factory-method="getInstance"/>
<bean id="date" factory-bean="calendar" factory-method="getTime"/>
<!-- 数组类型(数组类型和list类型都只能用<util:list>) -->
<util:list id="int">
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
</util:list>
<util:list id="String">
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>hello</value>
</util:list>
<util:list id="Integer">
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
</util:list>
<!-- list类型 -->
<util:list id="list">
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>hello</value>
</util:list>
<!-- set类型 -->
<util:set id="set">
<value>zhangsan</value>
<value>lisi</value>
<value>wangwu</value>
</util:set>
<!--map类型-->
<util:map id="map">
<entry key="id" value="1"/>
<entry key="name" value="zhangsan"/>
<entry key="age" value="23"/>
<entry key="date" value-ref="date"/>
</util:map>
<!--properties类型-->
<util:properties id="properties">
<prop key="name">zhangsan</prop>
<prop key="age">age</prop>
<prop key="gender">gender</prop>
</util:properties>
<bean id="user" class="org.spring.teach.User">
<!--基本类型(包含String)-->
<property name="name" value="zhangsan"/>
<property name="age" value="23"/>
<!--引用其他bean需要使用ref,而不是使用value-->
<property name="arrInt" ref="int"/>
<property name="arrString" ref="String"/>
<property name="arrInteger" ref="Integer"/>
<property name="map" ref="map"/>
<property name="set" ref="set"/>
<property name="list" ref="list"/>
<property name="prop" ref="properties"/>
<!-- 引用类型 -->
<property name="cal" ref="calendar"/>
<property name="date" ref="date"/>
</bean>
</beans>
public class TestCase {
private AbstractApplicationContext app;
@Before
public void before() {
app = new ClassPathXmlApplicationContext("classpath:spring.xml");
}
@After
public void after() {
app.close();
}
@Test
public void test() {
User user = app.getBean("user", User.class);
System.out.println(user);
}
}
一月 25, 2019 10:44:21 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7c53a9eb: startup date [Fri Jan 25 10:44:21 CST 2019]; root of context hierarchy
一月 25, 2019 10:44:22 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [spring.xml]
一月 25, 2019 10:44:23 上午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
User{name='zhangsan', age=23, arrString=[1, 2, 3, 4, hello], arrInt=[1, 2, 3, 4], arrInteger=[1, 2, 3, 4], set=[zhangsan, lisi, wangwu], map={id=1, name=zhangsan, age=23, date=Fri Jan 25 10:44:23 CST 2019}, list=[1, 2, 3, 4, hello], prop={age=age, name=zhangsan, gender=gender}, date=Fri Jan 25 10:44:23 CST 2019, cal=java.util.GregorianCalendar[time=1548384263044,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=0,WEEK_OF_YEAR=4,WEEK_OF_MONTH=4,DAY_OF_MONTH=25,DAY_OF_YEAR=25,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=44,SECOND=23,MILLISECOND=44,ZONE_OFFSET=28800000,DST_OFFSET=0]}
信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@7c53a9eb: startup date [Fri Jan 25 10:44:21 CST 2019]; root of context hierarchy
Process finished with exit code 0