JavaEE简单示例——Bean的作用域

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。JavaEE简单示例——Bean的作用域,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

简单介绍:

之前我们介绍了有关Bean的实例化,我们在创建Bean的时候,还可以指定Bean的作用域。所谓作用域,就是指Bean示例的有效范围,作用域的范围有五种类型,其中比较常用的有两种,一种是单例模式(singleton)和原型模式(prototype),我们也组要围绕这两种模式来进行演示和说明。

使用方法:

在我们的Bean管理XML配置文件中,我们在<Bean>标签中添加一个新的元素scope用来指定使用何种的作用域,例如:JavaEE简单示例——Bean的作用域

在Bean管理XML配置文件中添加这样的语句之后,我们就可以创建出一个单例模式的User类,当然,因为我们默认的就是单例模式,所以这个配置是多余的。

那么单例模式和原型模式有什么区别呢?

单例模式指的是我们多次创建的同一个对象其实是同一对象。很绕是吧,其实就是我们在创建对象的时候,如果我们多次创建同一对象之后,返回的都是同一个对象。这样的好处就是避免多次创建对象,节省资源,但是线程不安全。

原型模式,也可以叫多例模式,顾名思义啊,就是当我们多次创建同一对象的时候,返回多个不同的对象,如果不理解理论,可以待会在代码的实现中去结合代码理解。多例模式的好处就是他是线程安全的,一个人一个对象,不会出现干扰的情况,缺点就是需要多次创建对象,导致资源可能会占用的比较多。

代码实现:

首先我们来测试一下单例模式:

JavaEE简单示例——Bean的作用域

我们在测试类的IoC容器中获取多个User的对象:

JavaEE简单示例——Bean的作用域

 可以看到,我们获取了两个User的对象,那么根据之前我们说的,单例模式下,我们多次获取同一个类的对象返回的都是同一对象,那么直接让这两个对象相等,如果返回true就表示这两个类相等,也就是同一个对象,如果返回的是false,则表示不相等,现在运行来看结果:

JavaEE简单示例——Bean的作用域

返回的是true,那么就表示这是两个相同的对象,也就是说,在我们多次获取同一个对象的时候,IoC容器只会为我们创建一个对象,让我们重复使用。

接下来看多例模式:

JavaEE简单示例——Bean的作用域 将scope的值改成prototype,就表示我们创建的类是多例模式,然后我们继续回到测试类进行代码的测试:

JavaEE简单示例——Bean的作用域

可以看到,这次我们输出了false,说明在多例模式下,我们多次从IoC容器中获取的同一个类的对象都是一个新的对象。

注意点:

在平时的使用中,这两种模式我们更推荐单例模式,因为这样比较节省资源,但是在有些时候,比如我们不能使用同一个对象进行业务的处理,比如多线程模式,或者其他的一些应用场景的时候,我们就要根据情况来决定使用多例模式还是单例模式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153291.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!