javascript
java 单例 生命周期_Rhythmk 一步一步学 JAVA (13) Spring-2 之Ben懒加载以及生命周期,单例...
1、定義Demo類:
package com.rhythmk.spring;
public class User {
public void Init ()
{
System.out.println("User 對(duì)象被 創(chuàng)建!");
}
// 計(jì)數(shù)器
public int Count=0;
public void Say()
{
this.Count++;
System.out.println("User 被"+this.Count+"次初始!");
}
public void Destory()
{
System.out.println("User 對(duì)象被銷毀!");
}
}
2、init-method:對(duì)象初始執(zhí)行
destroy-method:對(duì)象銷毀執(zhí)行:
執(zhí)行單元測(cè)試:
@Test
public void test() {
BeanFactory bean=new ClassPathXmlApplicationContext("applicationContext.xml");
User user=(User)bean2.getBean("user");
user.Say();
}
輸出:
User 對(duì)象被 創(chuàng)建!
User 被1次初始!
3、scope ?包括?singleton單例模式 ?(默認(rèn))
prototype,Request, Session, Global Session
默認(rèn)applicationContext.xml 配置 添加測(cè)試代碼:
private static BeanFactory bean= new ClassPathXmlApplicationContext("applicationContext.xml");
@Test
public void test1() {
User user=(User)bean.getBean("user");
user.Say();
}
@Test
public void test2() {
User user=(User)bean.getBean("user");
user.Say();
}
輸出:
User 對(duì)象被 創(chuàng)建!
User 被1次初始!
User 被2次初始!
修改applicationContext.xml 添加?scope=prototype
執(zhí)行如上測(cè)試代碼:
輸出:
User 對(duì)象被 創(chuàng)建!
User 被1次初始!
User 被1次初始!
4、 ?lazy-init 默認(rèn)為 false ,為true時(shí),則在執(zhí)行“BeanFactory bean= new ClassPathXmlApplicationContext("applicationContext.xml");”
并未執(zhí)行初始化,只有在?bean.getBean("user") 才會(huì)執(zhí)行函數(shù)初始:
package com.rhythmk.spring;
public class User {
// 計(jì)數(shù)器
public int Count=0;
public User()
{
System.out.println("User 被"+this.Count+"次初始!");
}
public void Say()
{
this.Count++;
System.out.println("User.Say!");
}
}
4.1 、默認(rèn)配置:
輸出:
User 被0次初始!
開(kāi)始執(zhí)行測(cè)試!
User.Say!
4.2 、調(diào)整配置:
輸出:
開(kāi)始執(zhí)行測(cè)試!
User 被0次初始!
User.Say!
總結(jié)
以上是生活随笔為你收集整理的java 单例 生命周期_Rhythmk 一步一步学 JAVA (13) Spring-2 之Ben懒加载以及生命周期,单例...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: amd怎么选择u盘启动 AMD如何使用U
- 下一篇: 闪迪内存卡受损怎么修复工具 闪迪内存卡损