千家信息网

Spring中Bean的作用域与生命周期是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"Spring中Bean的作用域与生命周期是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring中Bean的作用域与生命周
千家信息网最后更新 2026年11月02日Spring中Bean的作用域与生命周期是什么

这篇文章主要讲解了"Spring中Bean的作用域与生命周期是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring中Bean的作用域与生命周期是什么"吧!

一、Bean的作用域

通过Spring容器创建一个Bean的实例时,不仅可以完成Bean的实例化,还可以使用Bean的scope属性为bean设置作用域。

语法格式:

作用域的种类:(sing)

singleton和prototype区别:(该两种比较常用)

① singleton单实例,prototype多实例

② 设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象

设置scope值是prototype时候,在加载spring配置文件时候暂时不会创建对象,在调用getBean方法时候才创建多实例对象

singleton作用域:

//Cat.javapublic class Cat {    private String name;    public void setName(String name) {        this.name = name;    }}

配置文件beans5.xml

    

测试:

//Bean的作用域测试方法@Testpublic void catTest(){    //1.初始化Spring容器,加载配置文件    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans5.xml");    //2.通过Spring容器获取Bean的实例    Cat cat1 = (Cat) applicationContext.getBean("cat");    Cat cat2 = (Cat) applicationContext.getBean("cat");    //3.输出获取的实例    System.out.println(cat1);    System.out.println(cat2);}

prototype作用域:

将配置文件beans5.xml中的scope属性改为prototype,再次运行测试:

    

3测试:

二、Bean的生命周期

Bean从创建到销毁称为Bean的生命周期,大体上Bean的生命周期共有七步:

(1)通过无参构造器创建bean实例

(2)调用属性setter方法为bean的属性设置值

(3)把bean实例传递bean后置处理器的方法postProcessBeforeInitialization

(4)调用bean的初始化的方法(需要配置初始化的方法)

(5)把bean实例传递bean后置处理器的方法postProcessAfterInitialization

(6)获取使用已经创建的bean

(7)当容器关闭时候,调用bean的销毁的方法(需要配置销毁的方法)

注意:

① 初始化方法、销毁方法都需要在Bean中作为属性手动配置;

② 只有singleton作用域的Bean才会执行销毁方法;

使用代码演示Bean的生命周期

(1)普通Java Bean:Cat.java

public class Cat {    private String name;    public void setName(String name) {        this.name = name;        System.out.println("第二步:调用属性setter方法为bean的属性设置值");    }    public Cat(){        System.out.println("第一步;通过无参构造器创建bean实例");    }    //初始化方法(在配置文件中配置实现调用)    public void initMethod(){        System.out.println("第四步:调用bean的初始化的方法");    }    //销毁方法(在配置文件中配置实现调用)    public void destroyMethod(){        System.out.println("第七步:当容器关闭时候,调用bean的销毁的方法");    }}

(2)myBeanPostProcessor实现BeanPostProcessor接口,实现后置处理器:myBeanPostProcessor.java

(spring中的AOP就是通过实现BeanPostProcessor接口实现的)

//myBeanPostProcessor实现BeanPostProcessor接口,实现后置处理器public class myBeanPostProcessor implements BeanPostProcessor {    @Override    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {        System.out.println("第三步:把bean实例传递bean后置处理器的方法");        return bean;    }    @Override    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {        System.out.println("第五步:把bean实例传递bean后置处理器的方法");        return bean;    }}

(3)配置文件:beans5.xml

    

(4)测试

@Testpublic void catTest(){    //1.初始化Spring容器,加载配置文件    ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans5.xml");    //2.通过Spring容器获取Bean的实例    Cat cat = (Cat) applicationContext.getBean("cat");    //3.输出获取的实例    System.out.println("第六步:获取创建Bean实例"+cat);    //4.手动关闭    applicationContext.close();}

感谢各位的阅读,以上就是"Spring中Bean的作用域与生命周期是什么"的内容了,经过本文的学习后,相信大家对Spring中Bean的作用域与生命周期是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

方法 实例 配置 作用 文件 周期 生命 容器 属性 时候 处理器 处理 测试 对象 接口 学习 内容 就是 手动 构造器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 A股互联网金融科技公司 互联网通讯科技 互联网科技金融公司 友谊互联网络科技 互联网科技大会 互联网巨头投资的硬核科技 华脉科技工业互联网产品 西藏七维空间互联网科技有限公司 科技互联网的估值 栖莱科技互联网股份有限公司 广州市恰铎互联网科技有限公司 黑科技 体验场景 互联网大会 全球科技与互联网公司市值变化 万物互联网智能科技 唯美互联网科技 上海万顺科技互联网有限公司招聘 互联网科技博主张洲 瑞安市蟠桃会互联网科技有限公司 互联网科技自媒体灵感 重生之互联网科技帝国 美国互联网科技 互联网科技公司怎么样 有马互联网科技 互联网公司会议桌创意科技软装饰 中盈科技互联网信息有限公司 常德市电业局互联网科技部 宁夏众和广鑫互联网科技有限公司 云鲸互联网络科技有限公司 互联网科技大会大佬
0