天天看點

spring-自動加載配置檔案\使用屬性檔案注入

spring-自動加載配置檔案\使用屬性檔案注入

src/main/resources 這個source folder 放置web項目所需的主要配置,打包時,會自動打包到WEB-INF下

首先看下pom.xml,需要引入一些依賴項:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

pom.xml

1. 自動加載配置檔案

在web項目中,可以讓spring自動加載配置檔案(即上圖中的src/main/resouces/spring下的xml檔案),WEB-INF/web.xml中參考以下設定:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

web.xml

解釋一下: classpath*:spring/applicationContext-*.xml 這裡表示将加載classpath路徑下 spring目錄下的所有以applicationContext-開頭的xml檔案 , 通常為了保持配置檔案的清爽 , 我們會把配置分成多份 : 比如 applicationContext-db.xml 用來配置DataSource , applicationContext-cache.xml用來配置緩存...等等.

2.代碼中如何取得ApplicationContext執行個體

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

ApplicationContextUtils

 有了這個工具類 , 就可以友善的取得注入的Bean

3. 使用properties檔案注入

為了示範注入效果,先定義一個基本的Entity類

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

ProductEntity

然後在applicationContext-beans.xml中配置以下内容:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

spring配置檔案

注:classpath:properties/*.properties表示運作時 , spring容器會自動加載classpath\properties目錄下的所有以.properties字尾結尾的檔案 ,  我們在src/main/resources/properties/下放置一個product.properties屬性檔案 , 内容如下:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

product.properties

該檔案被spring自動加載後 , 就可以用裡面定義的屬性值 , 為Bean做setter屬性注入 , 即配置檔案中的<property name="productId" value="${product.id}" />

4.驗證注入是否成功

在HomeController裡 ,  向Spring容器要一個Bean ,  顯示下它的屬性:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

HomeController

index.xhtml裡仍然跟上篇相同:

spring-自動加載配置檔案\使用屬性檔案注入
spring-自動加載配置檔案\使用屬性檔案注入

index.xhtml

最後部署到jboss上 , 運作截圖如下:

spring-自動加載配置檔案\使用屬性檔案注入