栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring bean生命周期图(spring bean生命周期 简书)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring bean生命周期图(spring bean生命周期 简书)

简易过程 1.Bean实例化——调用无参构造器 2.Bean属性设值——调用Setter赋值 3.Bean初始化——调用init-method() 4.Bean使用 5.Bean销毁——调用destory-method()

完整过程 1.Bean实例化 2.Setter设值 3.setBeanName(),传入Bean当前的id值 4.setFactory(),传入当前 Factory 实例的引用 5.setApplicationContext(),传入当前 ApplicationContext 实例的引用 6.postProcessBeforeInitialzation() 后处理器在init-method()之前的操作 7.afterPropertiesSet() 8.init-method()完成初始化 9.postProcessAfterInitialization() 后处理在init-method()方法之后的操作 10.判断Bean的作用域 singleton放入loc容器的缓存池中,触发Spring对Bean的管理 prototype交给调用者管理 11.destory-method()销毁

Bean类代码如下
public class MyBean {
    //无参构造器
    public MyBean() {
        System.out.println("step1 执行无参构造创建bean实例");
    }

    private String name;

    //setter方法
    public void setName(String name) {
        this.name = name;
        System.out.println("step2 调用set方法完成属性设值");
    }

    //执行初始化方法
    public void initMehtod(){
        System.out.println("step3 执行初始化方法");
    }

    //执行销毁方法
    public void destroyMehtod(){
        System.out.println("step5 执行销毁方法");
    }

    @Override
    public String toString() {
        return "MyBean{" +
                "name='" + name + ''' +
                '}';
    }
}
XML文件代码如下



    
    
    
        
    
 测试类
public class Test{
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("meta-INF/spring/Beans.xml");
        MyBean myBean = (MyBean) context.getBean("myBean");
        System.out.println("step4 获取创建bean实例对象");
        System.out.println(myBean);
        //手动销毁Bean
        ((ClassPathXmlApplicationContext)context).close();
    }
}
结果如下

step1 执行无参构造创建bean实例
step2 调用set方法完成属性设值
step3 执行初始化方法

step4 获取创建bean实例对象

step5 执行销毁方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773602.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号