spring学习笔记(三) — bean中的引用赋值和数组/集合赋值
引用赋值
如果一个对象的某个成员需要使用另一个对象来赋值的话,在spring中的配置文件中只需要用ref引用另一个bean的id
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="person" class="com.beanlife.Person">
<property name="name" value="森头"/>
<!-- 引用下面Date的id -->
<property name="birthday" ref="bir"/>
</bean>
<bean id="bir" class="java.util.Date"/>
</beans>
package com.beanlife;
import java.util.Date;
public class Person {
private String name;
private Date birthday;
public final Date getBirthday() {
return birthday;
}
public final void setBirthday(Date birthday) {
this.birthday = birthday;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
public void sayHi() {
System.out.println("你好, 我是" + name + "\n我的生日是" + birthday);
}
}
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.beanlife.Person;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ac.getBean("person");
person.sayHi();
}
}
数组赋值
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="person" class="com.beanlife.Person">
<property name="name" value="森头"/>
<property name="friends">
<list>
<value>李雷</value>
<value>韩梅梅</value>
</list>
</property>
</bean>
</beans>
package com.beanlife;
public class Person {
private String name;
private String[] friends;
public final String[] getFriends() {
return friends;
}
public final void setFriends(String[] friends) {
this.friends = friends;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
public void sayHi() {
System.out.println("你好, 我是" + name);
}
}
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.beanlife.Person;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ac.getBean("person");
person.sayHi();
for(String f : person.getFriends()) {
System.out.print(f + ",");
}
System.out.println("都是我的好朋友!");
}
}
list赋值
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="person" class="com.beanlife.Person">
<property name="name" value="森头"/>
<property name="friends">
<list>
<ref bean="friend1"/>
<ref bean="friend2"/>
</list>
</property>
</bean>
<bean id="friend1" class="com.beanlife.Person">
<property name="name" value="小红"/>
</bean>
<bean id="friend2" class="com.beanlife.Person">
<property name="name" value="小苗"/>
</bean>
</beans>
package com.beanlife;
import java.util.List;
public class Person {
private String name;
private List<Person> friends;
public final List<Person> getFriends() {
return friends;
}
public final void setFriends(List<Person> friends) {
this.friends = friends;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
public void sayHi() {
System.out.println("你好, 我是" + name);
}
}
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.beanlife.Person;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ac.getBean("person");
person.sayHi();
for(Person f : person.getFriends()) {
System.out.print(f.getName() + ",");
}
System.out.println("都是我的好朋友!");
}
}
map赋值
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="person" class="com.beanlife.Person">
<property name="name" value="森头"/>
<property name="map">
<map>
<entry key="第一个" value-ref="friend1"/>
<entry key="第二个" value-ref="friend2"/>
</map>
</property>
</bean>
<bean id="friend1" class="com.beanlife.Person">
<property name="name" value="小红"/>
</bean>
<bean id="friend2" class="com.beanlife.Person">
<property name="name" value="小苗"/>
</bean>
</beans>
package com.beanlife;
import java.util.Map;
public class Person {
private String name;
private Map<String, Person> map;
public final Map<String, Person> getMap() {
return map;
}
public final void setMap(Map<String, Person> map) {
this.map = map;
}
public final String getName() {
return name;
}
public final void setName(String name) {
this.name = name;
}
public void sayHi() {
System.out.println("你好, 我是" + name);
}
}
package com.test;
import java.util.Map.Entry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.beanlife.Person;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person person = (Person) ac.getBean("person");
person.sayHi();
for(Entry<String, Person> entry : person.getMap().entrySet()) {
System.out.print("key = " + entry.getKey());
System.out.println("\tvalue = " + entry.getValue().getName());
}
}
}