spring Bean标签及生命周期

springBean的生命周期

bean标签

作用:配置javabean对象,默认调用无参构造方法实例化对象。

属性 说明
id bean的唯一标识
class 类的全限定名称
scope 设置bean的作用范围
取值:singleton:单例。默认值
prototype 多例
init-method 指定类中初始化方法的名称,在构造方法执行完毕后立即执行
destory-method 指定类中销毁方法的名称,在销毁spring容器前执行

bean的生命周期

单例:scorp=“singleton”

出生:当容器创建时对象出生

活着:只要容器存在,对象就一直活着

死亡:容器销毁,对象死亡

单例的生命周期和容器相同

多例:scorp=”prototype“

出生:第一次使用对象,对象出生

活着:只要对象在使用过程中,就一直活着

死亡:当对象不再使用,或没有被其他对象引用,由java垃圾回收器回收。

spring实例化bean的三种方式

无参构造方法实例化

​ 默认使用无参数构造方法,创建对象

配置bean.xml

  <bean id="customerDao" class="com.xt.dao.impl.CustomerDaoImpl"
    scope="singleton" init-method="init" destroy-method="destroy"
    ></bean>

静态工厂实例化

编写工厂类

public class StaticFactoryBean {

    /**
     * 工厂方法,注意:static关键子。该方法是静态的
     */
    public static CustomerDao createCustomerDao(){

        // 返回结果
        CustomerDao customerDao = null;

        System.out.println("静态工厂方法实例化对象----------------------start");
        customerDao = new CustomerDaoImpl();
        System.out.println("静态工厂方法实例化对象----------------------end");

        return customerDao;
    }
}

配置bean.xml

<!--静态工厂方法实例化对象,说明:
        属性:
            id:唯一标识名称
            class:类全路径
            factory-method:指定工厂方法
    -->
    <bean id="staticDao" class="com.xt.factory.StaticFactoryBean" factory-method="createCustomerDao"></bean>

实例工厂方法实例化

工厂类

public class InstanceFactoryBean {

    /**
     * 工厂方法,该方法是一个普通方法
     */
    public  CustomerDao createCustomerDao(){

        // 返回结果
        CustomerDao customerDao = null;

        System.out.println("实例工厂方法实例化对象----------------------start");
        customerDao = new CustomerDaoImpl();
        System.out.println("实例工厂方法实例化对象----------------------end");

        return customerDao;
    }
}

配置bean.xml

<!--实例工厂方法实例化对象,说明:
        第一步:配置静态工厂对象
        第二步:
            factory-bean:指定工厂对象
            factory-method:指定工厂方法
    -->
    <bean id="instanceFactory" class="com.xt.factory.InstanceFactoryBean"></bean>
    <bean id="instanceDao" factory-bean="instanceFactory" factory-method="createCustomerDao"></bean>
原文地址:https://www.cnblogs.com/kt-ting/p/12573355.html