Spring - -setter方式 向bean中注入各种类型的值

        假设,有一个客户A:CustomerA.java

public class CustomerA {
	private Integer id; // 编号
	private String name;// 名称
	private Set<Tel> telSet; // 电话
	private List<City> cityList; // 城市
	private Map<Tel, City> telCityMap;// 电话--城市
	//省略getter,setter...
}

   

    电话类:Tel.java

public class Tel {
	private String telNum;
	//省略getter,setter
}

  

    城市类:City

public class City {
	private String cityName;
	//省略getter,setter
}

   

    重点:配置xml文件 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-3.0.xsd">

	<bean id="tel1" class="b.Tel">
		<property name="telNum" value="135"></property>
	</bean>
	<bean id="tel2" class="b.Tel">
		<property name="telNum" value="136"></property>
	</bean>
	<bean id="tel3" class="b.Tel">
		<property name="telNum" value="137"></property>
	</bean>

	<bean id="city1" class="b.City">
		<property name="cityName" value="北京"></property>
	</bean>
	<bean id="city2" class="b.City">
		<property name="cityName" value="上海"></property>
	</bean>
	<bean id="city3" class="b.City">
		<property name="cityName" value="广州"></property>
	</bean>


	<bean id="customerA" class="b.CustomerA">
		<!-- 基本类型与及其封装类型都用value属性来配置值 -->
		<property name="id" value="1"></property>
		<property name="name" value="candy"></property>
		<!-- 注入引用类型的集合的值 -->
		<property name="telSet">
			<set>
				<ref bean="tel1" />
				<ref bean="tel2" />
				<ref bean="tel3" />
			</set>
		</property>
		<property name="cityList">
			<list>
				<ref bean="city1" />
				<ref bean="city2" />
				<ref bean="city3" />
			</list>
		</property>
		<property name="telCityMap">
			<map>
				<entry key-ref="tel1">
					<ref bean="city1" />
				</entry>
				<entry key-ref="tel2">
					<ref bean="city2" />
				</entry>
				<entry key-ref="tel3">
					<ref bean="city3" />
				</entry>
			</map>
		</property>
	</bean>

</beans>

   

    单元测试:TestCustomerA.java

public class TestCustomerA {

	@Test
	public void testSetValueToCustomerA() {
		// 1.启动IOC容器
		ApplicationContext ac = new ClassPathXmlApplicationContext(
				"b/spring.xml");
		//2.获取bean
		CustomerA customerA = (CustomerA) ac.getBean("customerA");
		System.out.println(customerA.getName());

		Set<Tel> telSet = customerA.getTelSet();
		for (Tel tel : telSet) {
			System.out.println(tel.getTelNum());
		}

		List<City> cityList = customerA.getCityList();
		for (City city : cityList) {
			System.out.println(city.getCityName());
		}

		Map<Tel, City> telCityMap = customerA.getTelCityMap();
		Set<Entry<Tel, City>> entrySet = telCityMap.entrySet();
		for (Entry<Tel, City> entry : entrySet) {
			System.out.println(entry.getKey().getTelNum() + "----"
					+ entry.getValue().getCityName());
		}
	}
}

    注意:在学习的时候我把所有的文件都放在了项目的b包中,在实际开发中不建议这么做,应该按照约定俗成的包命名规则来搞。所用到Spring IOC/CORE模块的jar包在附件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值