hlantian的博客园

导航

 

ApplicationCotext.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" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 注入Bean属性 -->
	<bean id="mybean" class="com.zxiaoyao.beans.MyBean">
		<property name="name" value="张三" />
		<property name="age" value="100" />
	</bean>

	<!-- 通过构造函数注入 -->
	<bean id="mybean2" class="com.zxiaoyao.beans.MyBean2">
		<constructor-arg value="李四" />
		<constructor-arg value="200" />
	</bean>

	<!-- 注入其他Bean -->
	<bean id="mybean3" class="com.zxiaoyao.beans.MyBean3">
		<property name="my2" ref="mybean2" />
	</bean>

	<!-- 注入内部 Bean -->
	<bean id="mybean5" class="com.zxiaoyao.beans.MyBean5">
		<property name="my4">
			<bean class="com.zxiaoyao.beans.MyBean4" />
		</property>
	</bean>

	<!--  此配置 可 适用 list 或 Array -->
	<bean id="mybean6" class="com.zxiaoyao.beans.MyBean6">
		<property name="mys">
			<list>
				<ref bean="mybean" />
				<ref bean="mybean2" />
				<ref bean="mybean3" />
				<ref bean="mybean5" />
			</list>
		</property>
	</bean>
	<!-- 集合装配 -->
	<!-- set -->
	<bean id="mybean7" class="com.zxiaoyao.beans.MyBean6">
		<property name="mys">
			<set>
				<ref bean="mybean" />
				<ref bean="mybean2" />
				<ref bean="mybean3" />
				<ref bean="mybean5" />
			</set>
		</property>
	</bean>

	<!-- map  -->
	<bean id="mybean8" class="com.zxiaoyao.beans.MyBean6">
		<property name="mymap">
			<map>
				<entry key="m" value-ref="mybean" />
				<entry key="m2" value-ref="mybean2" />
				<entry key="m3" value-ref="mybean3" />
				<entry key="m5" value-ref="mybean5" />
			</map>
		</property>
	</bean>

	<!-- properties -->
	<bean id="mybean9" class="com.zxiaoyao.beans.MyBean7" > 
		<property name="properties">
			<props>
				<prop key="s1">天下第一2人</prop>
				<prop key="s2">天下第二2人</prop>
				<prop key="s3">天下第三2人</prop>
				<prop key="s4">天下第四2人</prop>
			</props>
		</property>
	</bean>

	<!-- 自动装配    此法和在 beans 节点的 default-autowire="" 属性设置 ByName、byType、constructor、 autodetect 进行全局设置 -->
	<bean id="mybean10" class="com.zxiaoyao.beans.MyBean8" autowire="byName">
	</bean>	
	<bean id="mybean11" class="com.zxiaoyao.beans.MyBean8" autowire="byType">
	</bean>	
	<bean id="mybean12" class="com.zxiaoyao.beans.MyBean8" autowire="constructor">
	</bean>	
	<bean id="mybean13" class="com.zxiaoyao.beans.MyBean8" autowire="autodetect" scope="singleton" >
	<!-- scope属性   -->
	<!-- singleton  定义Bean的范围为每个Spring容器一个实例   -->
	<!-- prototype	定义Bean可以被多次实例化(使用一次就创建一个实例)   -->
	<!-- request	定义Bean的范围是Http请求。只有使用有Web能力的Spring上下文(例如SpringMVC)时才有效   -->
	<!-- session	定义Bean的范围是Http会话。只有使用有Web能力的Spring上下文(例如SpringMVC)时才有效   -->
	<!-- global-session	定义Bean的范围是全局Http会话。只有在portlet  -->
	</bean>	
	
	<!-- 工厂方法创建Bean -->
	<bean id="methodInstance" class="com.zxiaoyao.beans.SingletonBean" factory-method="createInstance">
	</bean>
	
	<!-- 初始化 和销毁Bean -->
	<!-- 在beans节点可设置 调用全局初始化和销毁  -->
	<bean id="mybean14" class="com.zxiaoyao.beans.MyBean9" 
		init-method="initMethod" destroy-method="cleanMethod">
	</bean>
	
	<!-- 该bean 实现 InitializingBean,DisposableBean 接口  实现 其afterPropertiesSet destroy 方法 实现 初始化和 销毁bean -->
	<bean id="mybean15" class="com.zxiaoyao.beans.MyBean10">
	</bean>
</beans>


所需Bean代码片段 去掉了get set, toString 方法

public class MyBean implements MyBeanI{

	private String name;
	private int age;
//-------------------------------
public class MyBean2 implements MyBeanI{

	private String name;
	private int age;
//---------------------------------------
public class MyBean3 implements MyBeanI{
	private String name;
	private int age;
	private MyBean2 my2;
//----------------------------------------
public class MyBean4 implements MyBeanI{
	private String name;
	private int age;
//---------------------------------------
public class MyBean5 implements MyBeanI{
	private String name;
	private int age;
	private MyBean4 my4;
//---------------------------------------
public class MyBean6 implements MyBeanI {
	private String name;
	private int age;
	private MyBean my;
	private Collection<MyBeanI> mys;
	private Map<String, MyBeanI> mymap;
//------------------------------------------------
public class MyBean7 implements MyBeanI{
	private Properties properties;
@Override
	public String toString() {
		StringBuilder sb250 = new StringBuilder();
		for(Iterator<Object> it = properties.keySet().iterator(); it.hasNext();){
			String key = (String)it.next();
			sb250.append("["+key+" : "+properties.getProperty(key)+"]").append("\n");
		}
		return sb250.toString();
	}
//---------------------------------------------
public class MyBean8 implements MyBeanI {
	private MyBean2 mybean2;
//--------------------------------------------
public class MyBean9 implements MyBeanI {
	private String name;
	private int age;
	public void initMethod(){
		System.out.println("init anyting....");
	}
	
	public void cleanMethod(){
		System.out.println("clean all........");
	}
//---------------------------------------------
public class MyBean10 implements MyBeanI,InitializingBean,DisposableBean {
	private String name;
	private int age;
	public void initMethod(){
		System.out.println("init anyting. 10...");
	}
	public void cleanMethod(){
		System.out.println("clean all....10....");
	}
	public void afterPropertiesSet() throws Exception {
		initMethod();
	}
	public void destroy() throws Exception {
		cleanMethod();
	}
//----------------------------------------------
public interface MyBeanI {
}
//----------------------------------------------
public class SingletonBean {
	private String name;
	private int age;
	private SingletonBean() {
		this.name = "the张三";
		this.age = 101;
	}
	private static class InnerSingletonClass {
		static SingletonBean instance = new SingletonBean();
	}
	public static SingletonBean createInstance() {
		return InnerSingletonClass.instance;
	}

Test 类

public class Mytest {
	public static void main(String[] args) throws InterruptedException {
		test1();
	}
	public static void test1(){
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		MyBean myb = (MyBean)context.getBean("mybean");
		System.out.println(myb.getName());
		MyBean2 myb2 = (MyBean2)context.getBean("mybean2");
		System.out.println(myb2);
		MyBean3 myb3 = (MyBean3) context.getBean("mybean3");
		System.out.println(myb3.getMy2().toString());
		MyBean5 myb5 = (MyBean5) context.getBean("mybean5");
		System.out.println(myb5.getMy4().toString());
		MyBean6 myb6 = (MyBean6) context.getBean("mybean6");
		System.out.println(myb6.getMys());
		MyBean6 myb7 = (MyBean6) context.getBean("mybean7");
		System.out.println(myb7.getMys());
		MyBean6 myb8 =(MyBean6) context.getBean("mybean8");
		System.out.println(myb8.getMymap().get("m2"));
		MyBean7 myb9 = (MyBean7)context.getBean("mybean9");
		System.out.println(myb9.toString());
		MyBean8 myb10 = (MyBean8)context.getBean("mybean10");
		System.out.println(myb10.getMybean2());
		MyBean8 myb11 = (MyBean8)context.getBean("mybean11");
		System.out.println(myb11.getMybean2());
		MyBean8 myb12 = (MyBean8)context.getBean("mybean12");
		System.out.println(myb12.getMybean2());
		MyBean8 myb13 = (MyBean8)context.getBean("mybean13");
		System.out.println(myb13.getMybean2());
		SingletonBean sb = (SingletonBean) context.getBean("methodInstance");
		System.out.println(sb);
		DisposableBean db = (DisposableBean)context;
		try {
			db.destroy();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


posted on 2012-03-01 10:25  hlantian的博客园  阅读(75)  评论(0编辑  收藏  举报