zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    递归函数的写法笔记
    Spring项目中执行Java脚本
    关于秒杀的系统架构优化思路
    分布式搜索引擎Elasticsearch性能优化与配置
    分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)
    分布式搜索引擎Elasticsearch的查询与过滤
    Linux 下编译升级 Python
    搭建通过 ssh 访问的 Git 服务器
    分布式搜索引擎Elasticsearch的简单使用
    PHP 源码学习之线程安全
  • 原文地址:https://www.cnblogs.com/kt-ting/p/12573355.html
Copyright © 2011-2022 走看看