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


  • 相关阅读:
    python 类的自定义属性
    好的設計模式
    sql server 过滤重复数据
    sql server 2000 sp3
    css
    SQL server 与Oracle开发比较(同事帮忙整理的,放这里方便查询)
    深圳 帮部门招聘人才
    BCP等三個sql server 過程
    CTE and CONNECT BY 樹的查詢(轉)
    继承System.Web.UI.Page的页面基类
  • 原文地址:https://www.cnblogs.com/hlantian/p/10194574.html
Copyright © 2011-2022 走看看