zoukankan      html  css  js  c++  java
  • Spring Bean 初级装配

    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();
    		}
    	}
    }


  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/hlantian/p/10194574.html
Copyright © 2011-2022 走看看