代码改变世界

spring-05

2018-11-05 23:33  crow!  阅读(135)  评论(0编辑  收藏  举报

默认情况下spring启动的时候对bean实例化。一旦配置延迟启用后,将延迟首次使用时实例化
<bean id="dept" class="cn.mldn.vo.Dept" p:deptno="10" p:dname="开发部" p:loc="北京" lazy-init="true"/>
    <!-- 方法都是自定义的方法范畴  ,构造方法之后自动调用初始化 -->
    <bean id="msg" class="cn.mldn.vo.Message" init-method="init" destroy-method="destory" />

 

java code:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //此时调用msg的init 
ctx.registerShutdownHook();            //调用msg的destory

    <!-- primary="true" 设置自动装配主选 -->
    <bean id="depta" class="cn.mldn.vo.Dept" primary="true">
        <property name="deptno" value="10" />
    </bean>
    <!-- autowire-candidate="false" 自动装配绝对不会取你了 -->
    <bean id="deptb" class="cn.mldn.vo.Dept" autowire-candidate="false">
        <property name="deptno" value="10" />
    </bean>
    <bean id="emp" class="cn.mldn.vo.Emp" autowire="byType" >
        <property name="empno" value="7369" />
    </bean>
    <bean id="dept" class="cn.mldn.vo.Dept">
        <property name="deptno" value="10" />
    </bean>
    <!-- 按照类型进行自动装配 -->
    <bean id="emp" class="cn.mldn.vo.Emp" autowire="byType" >
        <property name="empno" value="7369" />
    </bean>
    <!-- 按照名称进行自动装配 -->
    <bean id="emp" class="cn.mldn.vo.Emp" autowire="byName" >
        <property name="empno" value="7369" />
    </bean>