ioc 各种注入方式类型

Demo.java

@Test
	public void fun3() {
		//1 创建容器对象
		ApplicationContext ac=new ClassPathXmlApplicationContext("cn/itcast/c_injection/applicationContext.xml");
		//2 向容器“要” user对象
		CollectionBean cb=(CollectionBean)ac.getBean("cb");
		//3 打印user对象
		System.out.println(cb);
	}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">

	<!-- set方式注入: -->
	<bean name="user" class="cn.itcast.bean.User">
	<!-- 为user对象中名为name的属性注入tom作为值 -->
	<property name="name" value="tom"></property>
	<property name="age" value="18"></property>
	<!-- 为car属性注入下方配置的car对象 -->
	<property name="car" ref="car"></property>
	</bean>
	
	<!-- 将car对象配置到容器中 -->
	<bean name="car" class="cn.itcast.bean.Car">
	<property name="name" value="兰博基尼"></property>
	<property name="color" value="红色"></property>
	</bean>
	
	<!-- ======================================== -->
	<!-- 构造函数注入
	<bean name="user2" class="cn.itcast.bean.User">
	index="1" type="cn.itcast.bean.Car"
	<constructor-arg name="name" value="jerry" ></constructor-arg>
	<constructor-arg name="car" ref="car"></constructor-arg>
	</bean> -->
	
	<!-- ======================================== -->
	<!-- 复杂类型注入 -->
	<!-- array注入 -->
	<bean name="cb" class="cn.itcast.c_injection.CollectionBean">
		<!-- 如果数组中只准备注入一个值 -->
		<!-- <property name="arr" value="tom"></property> -->
		<!-- 注入多个值 -->
		<property name="arr">
			<array>
				<value>tom</value>
				<value>jerry</value>
				<ref bean="user"/>
			</array>
		</property>
	</bean>
</beans>

CollectionBean.java

package cn.itcast.c_injection;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class CollectionBean {
	@Override
	public String toString() {
		return "CollectionBean [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", prpo=" + prpo
				+ "]";
	}
	private Object[] arr;//数组类型注入
	private List list;//list/set类型注入
	private Map map;//map类型注入
	private Properties prpo;//Properties类型注入
	public Object[] getArr() {
		return arr;
	}
	public void setArr(Object[] arr) {
		this.arr = arr;
	}
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public Map getMap() {
		return map;
	}
	public void setMap(Map map) {
		this.map = map;
	}
	public Properties getPrpo() {
		return prpo;
	}
	public void setPrpo(Properties prpo) {
		this.prpo = prpo;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43878297/article/details/88955958