簡體   English   中英

Spring Web應用程序:如何外部化屬性文件?

[英]Web app with Spring: how externalize properties file?

我已經在服務器Tomcat上使用Spring框架構建了一個J2EE Web應用程序,並且我的應用程序需要讀取一些屬性(例如jdbs連接參數,文件夾路徑等),這些屬性必須是外部的。 我的意思是說今天我將jar放在服務器上。 如果兩年后我要使用的連接數據庫參數或文件夾將要更改,我不想重新部署該應用程序,而只需更改屬性文件。

我現在所擁有的是類路徑中的.properties文件,以及讀取它的bean:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations" value="classpath:database.properties"/>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="url" value="${jdbc.url}" />
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

database.properties:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cheExport?useSSL=false
jdbc.username=root
jdbc.password=root

我該如何實現自己的目標?

如果我還記得的話,可以在服務器xml中做一些事情,在其中可以指定某個文件夾包含屬性文件。 但是那我怎么把它們放在一起呢?

在這篇文章中, JAR文件之外讀取屬性文件也被問到相同的問題,但是沒有使用Spring,所以我認為這對我來說沒有用

我還讀到在這種情況下使用Spring Boot是很常見的,但我使用的是Spring MVC

您使用util屬性。 只是給你看我的示例代碼。

根的context.xml

<util:properties id="config"
    location="classpath:config/config.properties" />

<bean id="officeDataSource"
    class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
    <property name="driverClass" value="#{config['driverClass']}" />
    <property name="url" value="#{config['commonUrl']}" />
    <property name="username" value="#{config['username']}" />
    <property name="password" value="#{config['password']}" />
</bean>

config.properties

driverClass=org.mariadb.jdbc.Driver
commonUrl=jdbc:mariadb://123.345.563.16:3306/FACE_BOOK_DB?useUnicode=yes&amp;characterEncoding=UTF-8

username=id
password=pw

為您的項目結構圖。 項目中存在資源(web-inf-classes-config)。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM