久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

Spring創(chuàng)建Bean過程的方法

時(shí)間:2024-08-13 17:52:38 JAVA認(rèn)證 我要投稿
  • 相關(guān)推薦

Spring創(chuàng)建Bean過程的方法

  1. beans包提供了以編程方式管理和操作bean的基本功能,而context包增加了ApplicationContext,它以一種更加面向框架的方式增強(qiáng)了BeanFactory的功能。

  2. context包的基礎(chǔ)是位于org.springframework.context包中的ApplicationContext接口。它是由 BeanFactory接口派生而來的,提供了BeanFactory的所有功能。為了以一種更面向框架的方式工作,使用分層和繼承關(guān)系的上下文,context包還提供了一下的功能。

  a. MessageSource,對(duì)I18N消息的訪問。

  b. 資源訪問,例如URL和文件

  c. 事件傳遞給是吸納了ApplicationListener接口的bean

  d. 載入多個(gè)(有繼承關(guān)系)上下文,使得每一個(gè)上下文都專注于一個(gè)特定的層是,比如應(yīng)用的web層。

  國(guó)際化支持

  1. ApplicationContext擴(kuò)展了MessageSource接口,因而提供了messaging的功能(I18N或者國(guó)際化)。同 NestingMessageSource一起使用,還能處理分級(jí)的信息,這些是spring提供的處理信息的基本接口。

  2. 當(dāng)一個(gè)ApplicationContext被加載時(shí),它會(huì)自動(dòng)查找在context中定義的MessageSource bean.這個(gè)bean必須交做messageSource.如果找了這樣一個(gè)bean,所有對(duì)上述方法的調(diào)用將被委托給找到的 messageSource.如果沒有找到messageSource,ApplicationContext將會(huì)嘗試查找他的父親是否包含有同名的 bean.如果有,它將把找到的bean作為MessageSource.如果他沒有找到任何的信息處理源,他會(huì)創(chuàng)建一個(gè) StaticMessageSource.

  3. Spring目前提供了兩個(gè)MessageSource的實(shí)現(xiàn),他們是

  ResourceBundleMessageSource和StaticMessageSource.兩者都實(shí)現(xiàn)了 NestingMessageSource一邊能夠處理嵌套的信息。StaticMessageSource很少被使用,但是他提供了編程的方式向 source增加信息,我們經(jīng)常使用的是ResourceBundleMessageSource.

  在Spring中使用資源

  1. ApplicationContext繼承了ResourceLoader接口,在這個(gè)接口中,定義了getResource()方法,如下:

  Resource getResource(String location)

  該方法返回一個(gè)資源句柄。這個(gè)句柄應(yīng)該總是一個(gè)可重復(fù)使用的資源描述符,允許多次調(diào)用getInputStream();

  2. getResource()方法的參數(shù)是一個(gè)資源訪問地址,例如:

  file:\c:/test.data

  classpath:test.data(從classpath路徑中查找test.dat文件并返回他的資源句柄)

  WEB-INF/test.dat

  注意:getResource()方法返回的Resource句柄并不意味著資源實(shí)際存在,你需要調(diào)用Resource接口的exists()方法判斷資源是否存在。

  Resource提供了與協(xié)議無關(guān)的特性。

  事件傳遞

  1. ApplicationContext中的時(shí)間處理是通過AppcationEvent類和ApplicationListener接口來提供的。如果上下文中部署了一個(gè)實(shí)現(xiàn)了ApplicationListener接口的bean,每次一個(gè)ApplicationEvent發(fā)布到 ApplicationContext時(shí),那個(gè)bean就會(huì)被通知。實(shí)質(zhì)撒謊功能,這是標(biāo)準(zhǔn)的Observer設(shè)計(jì)模式。

  2. Spring提供的三個(gè)標(biāo)準(zhǔn)事件

  a. ContextRefreshedEvent

  當(dāng)ApplicationContext已經(jīng)初始化或刷新后發(fā)送的事件。這里初始化意味著:所有的bean被裝載,singleton被預(yù)實(shí)例化,以及ApplicationContext已經(jīng)準(zhǔn)備好。

  b. ContextClosedEvent

  當(dāng)使用ApplicationContext的close()方法結(jié)束上下文的時(shí)候發(fā)送的事件。這里意味著:singleton被銷毀。

  c. RequestHandledEvent

  一個(gè)與web相關(guān)的事件,告訴所有的bean一個(gè)HTTP請(qǐng)求已經(jīng)被響應(yīng)了(這個(gè)時(shí)間將會(huì)在一個(gè)請(qǐng)求結(jié)束后被發(fā)送—)。注意,這個(gè)時(shí)間只能應(yīng)用于使用了Spring的DispatcherServlet的web應(yīng)用。

【Spring創(chuàng)建Bean過程的方法】相關(guān)文章:

創(chuàng)建公司的過程08-15

word創(chuàng)建編號(hào)的方法09-18

LabVIEW創(chuàng)建DLL的方法04-11

在word中創(chuàng)建宏的方法09-25

javascript數(shù)據(jù)創(chuàng)建方法參考07-30

CAD圖層創(chuàng)建與編輯的方法10-18

分娩過程的心理護(hù)理及自我調(diào)適方法07-29

javascript設(shè)置創(chuàng)建動(dòng)態(tài)表格的方法09-19

紋眼線的恢復(fù)過程-紋眼線的護(hù)理方法09-07

鉆孔過程中鉆頭被卡住的處理方法06-29