溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring:基于XML的IOC細(xì)節(jié)

發(fā)布時(shí)間:2020-06-24 01:06:45 來(lái)源:網(wǎng)絡(luò) 閱讀:247 作者:nineteens 欄目:編程語(yǔ)言

  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">


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI