[英]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&characterEncoding=UTF-8
username=id
password=pw
為您的項目結構圖。 項目中存在資源(web-inf-classes-config)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.