日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring框架如何加载和定义Spring Bean类?

發布時間:2025/3/15 javascript 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring框架如何加载和定义Spring Bean类? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇介紹什么是Spring Bean類,如何創建Bean類,以及如何將Bean類添加到Spring IOC容器。通過本篇的學習,可以達成如下目標。

● 認識Spring Bean類

● 掌握Bean類的配置項

● 將Bean類添加到Spring IOC容器

?

1、什么是Spring Bean類

Spring Bean是事物處理組件類和實體類(POJO)對象的總稱,Spring Bean被Spring IOC容器初始化,裝配和管理。

Spring Bean類包含事務處理組件和實體類(POJO)。在課程案例SpringProgram項目中,EmailNotice和PhoneNotice類屬于事務組件類,用于處理發送通知事務,包含事務處理代碼;Teacher類是實體類(POJO),僅包含實體屬性及其set和get方法。

Teacher類代碼如下。

?

Teacher類僅有兩個屬性:老師姓名(name)和上課時間(classtime)。方法getNotify()返回老師的上課時間。

?

EmailNotice類主要通過sendMessage()方法發送郵件給老師,因此該類依賴于老師類。sendMessage()是主要的事務處理方法。

?

2、Bean類的配置項

Spring IOC容器管理Bean時,需要了解Bean的類名、名稱、依賴項、屬性、生命周期及作用域等信息。為此,Spring IOC提供了一系列配置項,用于Bean在IOC容器中的定義。

① class

該配置項是強制項,用于指定創建Bean實例的Bean類的路徑。

② name

該配置項是強制項,用于指定Bean唯一的標識符,在基于 XML 的配置項中,可以使用 id和或 name 屬性來指定 Bean唯一 標識符。

③ scope

該配置項是可選項,用于設定創建Bean對象的作用域。

④ constructor-arg

該配置項是可選項,用于指定通過構造函數注入依賴數據到Bean。

⑤ properties

該配置項是可選項,用于指定通過set方法注入依賴數據到Bean。

⑥ autowiring mode

該配置項是可選項,用于指定通過自動依賴方法注入依賴數據到Bean。

⑦ lazy-initialization mode

該配置項是可選項,用于指定IOC容器延遲創建Bean,在用戶請求時創建Bean,而不要在啟動時就創建Bean。

⑧ initialization

該配置項是可選項,用于指定IOC容器完成Bean必要的創建后,調用Bean類提供的回調方法對Bean實例進一步處理。

⑨ destruction

該配置項是可選項,用于指定IOC容器在銷毀Bean時,調用Bean類提供的回調方法。

?

3、將Bean類添加到Spring IOC容器

將Bean類添加到Spring IOC容器有三種方式。一種方式是基于XML的配置文件;一種方式是基于注解的配置;一種方式是基于Java的配置。下面主要介紹基于XML的配置方式,基于注解和基于Java的配置放在后面進行討論,放在后面討論的原因是一些其它重要的Spring概念還需要掌握。

(1)XML配置文件的創建與存儲

項目創建后,需要手動創建Spring配置文件,Spring配置文件默認名稱是applicationContext.xml,也可以使用其它文件名稱代替。在課程案例SpringProgram項目中,Spring核心配置文件被命名為dispatcher.xml,存儲到src/config目錄,如下圖所示。

?

圖1 Spring配置文件在SpringProgram項

(2)Spring配置文件的加載

加載Spring的配置文件有多種方式,比較常用的是在web.xml加載配置文件。

① 使用ContextLoaderListener加載配置文件

如果配置文件名稱采用默認的applicationContext.xml,并且存存儲在WebContent/WEB-INF目錄下,在web.xml添加下述代碼。

?

ContextLoaderListener類在啟動Web容器時,自動加載Spring applicationContext.xml的配置信息。

② 加載自命名的配置文件

Spring配置文件名稱若沒有采用applicationContext.xml,而是采用其它名稱,如dispatcher.xml,文件依然存儲到WebContent/WEB-INF目錄下時,可在web.xml添加下述代碼。

?

param-name標簽用于設置配置文件的存儲位置,ContextLoaderListener從該存儲位置讀取配置文件。

③ 通過配置目錄加載配置文件

企業級別的Web項目,配置文件比較多。不僅有Spring的配置文件,也包括其它框架的配置文件。將配置文件集中起來并存儲到一個特定目錄下進行綜合管理,是開發大型項目常用的方法。課程案例SpringProgram項目中,Spring核心配置文件被命名為dispatcher.xml,存儲到src/config目錄。在這種情況下,需要在web.xml添加下述代碼。

?

<context-param>標簽用來聲明整個WEB項目內的上下文初始化參數。<param-name>標簽指定初始化參數名稱,<param-value>指定初始化參數的值。在web.xml配置的監聽器類可以通過上下文環境獲取指定參數名稱的值。

例如課程案例代碼:

?

代碼使用上下文ServletContext類調用getInitParameter獲取指定參數名稱的值(String配置文件的存儲位置),然后使用ClassPathXmlApplicationContext類讀取配置文件到ApplicationContext對象。這里的classpath是指 WEB-INF文件夾下的classes目錄。

(3)在Spring配置文件中定義Bean

已創建的Bean類需要在Spring配置文件中進行定義,Spring IOC容器才能對Bean進行組配和管理。

課程案例Teacher類在Spring配置文件定義的代碼如下。

?

<bean>標簽用于定義Bean,各屬性說明如下:

① id:Bean的唯一標識,ApplicationContext對象可以通過id獲取該Bean的實例。

② calss:Bean類的存儲路徑。

<property>標簽用于從外部注入Bean的屬性值, <property>標簽各屬性說明如下:

① name:Bean類的屬性名稱。

② value:name所值屬性的值。

課程案例EmailNotice類在Spring配置文件定義的代碼如下。

?

EmailNotice類的<bean>標簽相對Teacher類來說,多了p:teacher-ref屬性,該屬性用于對Bean內部的對象屬性進行注入,格式為:

P: 屬性名 = 注入的對象

?

課程小結

項目中的事務處理組件和實體類(POJO)可以作為Bean類,Bean類需要在Spring配置文件中進行定義,才能被IOC容器管理和組配。Spring IOC容器管理Bean時,需要了解Bean的類名、名稱、依賴項、屬性、生命周期及作用域等信息。為此,Spring IOC提供了一系列配置項,用于Bean在IOC容器中的定義。

總結

以上是生活随笔為你收集整理的Spring框架如何加载和定义Spring Bean类?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。