快速上手Spring--6. Singleton的使用与否

779 篇文章 0 订阅
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

  上篇文章已经谈了Spring-reference.pdf" />《Spring Framework 开发参考手册》的3.2.4小节——《Bean的标志符(id与name)》,现在继续3.2.5小节——《Singleton的使用与否》。 文档已经把Singleton说的很清楚了,这里也不废话了。主要是了解在Spring中,默认的部署方式是Singleton,没有特别需要的话,一般使用Singleton。 相关软件的配置可以参考《快速上手Spring--2.HelloWorld(1)》。这里还是以HelloBean为例,这三个文件都放在包javamxj.Spring.basic.Singleton下。·HelloBean 这里多加了属性i,用它得到随机数。hellobean.javapackage javamxj.Spring.basic.Singleton;public class hellobean { private string helloworld; private int i = (int) (100 * math.random()); public hellobean(string helloworld) { this.helloworld = helloworld; } public void sayhello() { system.out.println(helloworld); system.out.println("输出随机整数: " + i); }}· 配置文件 在这个Beans中,定义了两个bean,都指向HelloBean类,主要不同就是第二个bean指明了Singleton="false",即不采用Singleton部署方式。bean.xml Spring/dtd bean/en" "http://www.Springframework.org/dtd/Spring-beans.dtd"> Singletonbean" class="javamxj. Spring.basic. Singleton.hellobean"> hello! 这是 Singletonbean! Spring.basic. Singleton.hellobean" Singleton="false"> hello! 这是prototypebean! · 测试程序: 分别取得SingletonBean和prototypeBean各两个实例,然后输出随机数,最后比较同一个bean的两个实例的引用是否相同。main.javapackage javamxj.Spring.basic.Singleton;import org.Springframework.beans.factory.beanfactory;import org.Springframework.beans.factory.xml.xmlbeanfactory;import org.Springframework.core.io.classpathresource;import org.Springframework.core.io.resource;public class main { public static void main(string[] args) { resource res = new classpathresource("javamxj/Spring/basic/Singleton/bean.xml"); beanfactory factory = new xmlbeanfactory(res); hellobean h1 = (hellobean) factory.getbean("Singletonbean"); h1.sayhello(); hellobean h2 = (hellobean) factory.getbean("Singletonbean"); h2.sayhello(); system.out.println("h1==h2: " + (h1==h2)); system.out.println(""); hellobean h3 = (hellobean) factory.getbean("prototypebean"); h3.sayhello(); hellobean h4 = (hellobean) factory.getbean("prototypebean"); h4.sayhello(); system.out.println("h3==h4: " + (h3==h4)); }}·运行,控制台输出:Hello! 这是SingletonBean!输出随机整数: 7Hello! 这是SingletonBean!输出随机整数: 7h1==h2: trueHello! 这是prototypeBean! 输出随机整数: 95Hello! 这是prototypeBean! 输出随机整数: 60h3==h4: false·这篇文章和上篇文章的源代码下载(不包含库文件):http://free.ys168.com/?javamxj Spring目录下面的SpringBasic.zip。

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值