Spring Bean中的作用域和生命周期实例分析


这篇文章主要介绍“SpringBean中的作用域和生命周期实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBean中的作用域和生命周期实例分析”文章能帮助大家解决问题。常规的 Spring IoC 容器中Bean的作用域有两种:singleton(单例)和prototype(非单例)注:基于Web的容器还有其他种作用域,在这就不赘述了。singleton是Spring默认的作用域。当 Bean 的作用域为 singleton 时,Spring IoC 容器中只会存在一个共享的 Bean 实例。可以更好地重用对象,节省重复创建对象的开销。设置方式:将 元素的 scope 属性设置为singleton(其实也可以不用设置,因为spring默认就是单例模式)案例11.创建Dept类2.编写Spring配置文件,并将scope 属性设置为singleton3.编写运行程序4.结果如下,可以发现打印出的是同一个对象prototype表示原型(非单例)模式。当 Bean 的作用域为 prototype时,Spring 容器会在每次请求该 Bean 时,都创建一个新的 Bean 实例。设置方式:将 元素的 scope 属性设置为prototype案例21.只需修改scope 属性为prototype,其他代码不变。2.运行结果如下spring bean默认为单例,避免了对象的频繁创建与销毁,达到了bean对象的复用,性能高。像表现层、业务层、数据层、工具类对象只需要调用方法,比较适合交给Spring IoC容器管理但是像那种需要封装实例的域对象,因为会引发线程安全问题,不适合交给Spring IoC容器管理。Spring Bean生命周期:Spring Bean 对象从创建到销毁的整体过程。Spring Bean生命周期大致可以分为以下 5 个阶段:1.Bean 的实例化、2.Bean 属性赋值、3.Bean 的初始化、4.Bean 的使用、5.Bean 的销毁Spring 根据 Bean 的作用域来选择 Bean 的管理方式。对于 singleton 作用域的 Bean ,Spring IoC 容器能够一直追踪bean的生命周期;对于 prototype 作用域的 Bean ,Spring IoC 容器只负责创建,然后就将 Bean 的实例交给客户端代码管理,Spring IoC 容器将不再跟踪其生命周期。综上所述: 为了更好研究如何控制bean周期,下面案例中创建的bean默认都使用单例模式。由于ApplicationContext类中没有关闭容器的方法,所以想要关闭容器需要用到ApplicationContext的子类——ClassPa免费云主机域名thXmlApplicationContext类。该类又有两种方法可以关闭容器1、close关闭容器close()方法,在调用的时候关闭容器2、注册钩子关闭容器registerShutdownHook()方法,在JVM退出前调用关闭容器Bean 的生命周期回调方法主要有两种:初始化回调方法:在 Spring Bean 被初始化后调用,执行一些自定义的回调操作。销毁回调方法:在 Spring Bean 被销毁前调用,执行一些自定义的回调操作。我们可以通过以下 2种方式自定义 Bean 的生命周期回调方法:通过接口实现通过 XML 配置实现我们可以在 Spring Bean 的 Java 类中,通过实现 InitializingBeanDisposableBean 接口,指定 Bean 的生命周期回调方法。案例11.创建User类,并实现InitializingBean, DisposableBean接口,重写afterPropertiesSet()destroy()方法。代码如下2.编写spring配置文件3.编写运行程序4.运行结果如下注意:由于通过接口设置生命周期的方式会导致代码的耦合性过高,所以通常情况下,我们会通过xml设置生命周期。通过 元素中的 init-methoddestory-method 属性,指定 Bean 的生命周期回调方法。案例21.创建User类,这次不需要继承那两个接口了,但要在添加两个普通方法(方法名可任意):init()destory()代表初始化和销毁方法。代码如下2.编写spring配置文件,在元素里添加init-methoddestroy-method属性,并指定User类中自定义的init和destory方法(关键)3.运行程序和运行结果都与案例1相同,这里就少些笔墨介绍了关于“SpringBean中的作用域和生命周期实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: Docker login和logout怎么使用

这篇“Dockerlogin和logout怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Dockerlogin和logout怎么使用”文…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/11 22:07
下一篇 03/11 22:07

相关推荐