您好,登錄后才能下訂單哦!
bean標(biāo)簽
創(chuàng)建bean的三種方式
第一種方式:試用默認(rèn)構(gòu)造函數(shù)創(chuàng)建
在spring的配置文件中使用bean標(biāo)簽,配以id和class屬性之后,且沒(méi)有其他屬性和標(biāo)簽時(shí),采用的就是默認(rèn)構(gòu)造函數(shù)創(chuàng)建bean對(duì)象,此時(shí)如果類中沒(méi)有默認(rèn)構(gòu)造函數(shù),則對(duì)象無(wú)法創(chuàng)建
第二種方式:使用普通工廠中的方法創(chuàng)建對(duì)象(使用某個(gè)類中的方法創(chuàng)建對(duì)象,并存入spring容器)
第三種方式:使用工廠中的靜態(tài)方法創(chuàng)建對(duì)象(使用某個(gè)類中的靜態(tài)方法創(chuàng)建對(duì)象,并存入spring容器)
bean對(duì)象的作用范圍
bean標(biāo)簽的scope屬性:
作用:用于指定bean的作用范圍
取值:常用的就是單例的和多例的
singleton:?jiǎn)卫?默認(rèn)值)
prototype:多例的
request:作用于web應(yīng)用的請(qǐng)求范圍
session:作用于web應(yīng)用的會(huì)話范圍
global-session:作用于集群環(huán)境的會(huì)話范圍(全局會(huì)話范圍),當(dāng)不是集群環(huán)境時(shí),它就是session
單例和多例的比較
global session
bean對(duì)象的生命周期
單例對(duì)象
出生:當(dāng)容器創(chuàng)建是對(duì)象出生
活著:只要容器還在,對(duì)象一直活著
死亡:容器銷毀,對(duì)象消亡
總結(jié):和容器相同
多例對(duì)象
出生:當(dāng)我們使用對(duì)象時(shí)spring框架為我們創(chuàng)建
活著:對(duì)象只要是在使用過(guò)程中就一直活著
死亡:當(dāng)對(duì)象長(zhǎng)時(shí)間不用,且沒(méi)有別的對(duì)象引用時(shí),由java的垃圾回收器回收
demo無(wú)錫人流醫(yī)院 http://xmobile.wxbhnk120.com/
Client
public static void main(String[] args) {
//1.獲取核心容器對(duì)象
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
// ApplicationContext ac = new FileSystemXmlApplicationContext("bean.xml");
// 2.根據(jù)id獲取bean對(duì)象
IAccountService as = (IAccountService) ac.getBean("accountService");
as.saveAccount();
}
AccountServiceImpl
public class AccountServiceImpl implements IAccountService {
public AccountServiceImpl() {
System.out.println("對(duì)象創(chuàng)建了。。。。。");
}
public void saveAccount() {
System.out.println("service中的saveAccount方法執(zhí)行了。。。。。");
}
public void init() {
System.out.println("對(duì)象初始化了。。。。。");
}
public void destroy() {
System.out.println("對(duì)象銷毀了。。。。。");
}
}
bean.xml
scope="singleton" init-method="init" destroy-method="destroy">
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。