zoukankan      html  css  js  c++  java
  • Spring容器对Bean组件的管理

    Bean对象创建

    默认是随着容器创建
    
    可以使用 lazy-init=true:在调用 getBean 延迟创建
    也可以用 <beans default-lazy-init="true"/> 批量延迟创建
    

    Bean对象的创建模式

    默认是单例,可以使用scope属性改变。
    
    singleton:单例,每次调用getBean返回同一个对象
    
    prototype:原型,每次调用getBean返回一个新的对象
    

    Bean对象初始化和销毁

    init-method 属性用于指定初始化方法
    spring 容器创建完对象后,将会执行 xml 文件中指定的初始化方法,单例模式中初始化方法只会执行一次
    
    destroy-method 属性用于指定销毁方法,仅适用于 singleton 模式,
    在调用 AbstractApplicationContext 对象的 close() 方法时触发
    

    三种实例化bean的方式

    1.使用类构造器实例化
    
        <bean id=“userService" class="service.UserService"/>
    
    
    2.使用静态工厂方法实例化
    
        <bean id="userService" class="service.UserFactory" factory-method="createUser"/>
    
        public class UserFactory {
            public static UserService createUser(){
                return new UserService();
            }
        }
    
    
    3.使用实例工厂方法实例化:
    
        <bean id="userServiceFactory" class="service.UserFactory"/>
        <bean id="userService" factory-bean="userServiceFactory" factory-method="createUser"/>
    
        public class UserFactory {
            public UserService createUser(){
                return new UserService();
            }
        }
    
  • 相关阅读:
    我的2012
    java抽象工厂模式
    java工厂方法模式
    javascript闭包
    字符串转换成枚举类型
    按位与 按位或 按位异域
    一个查找替换文件的简单工具
    c#写的.net 画流程图的控件
    .net 面试题之 Sql 分页 存储过程
    .net 面试整理2013年3月21
  • 原文地址:https://www.cnblogs.com/loveer/p/11576408.html
Copyright © 2011-2022 走看看