我在服务器Tomcat上使用Spring框架构建了一个J2EE Web应用程序,我的应用程序需要读取一些我需要外部的属性(如jdbs连接参数,文件夹路径等等)。 我的意思是今天我把jar放在服务器上。如果在2年内连接数据库参数或我想要使用的文件夹将要更改,我不想重新部署应用程序,只需更改属性文件。
我现在拥有的是类路径中的.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中做一些事情,我可以在其中指定某个文件夹包含属性文件。但那我怎么把这些东西放在一起呢?
在这篇文章中Read properties file outside JAR file被问到同样的问题,但是没有使用Spring,所以我认为它在我的情况下没有用
我还读到在这种情况下使用spring boot很常见,但我使用的是Spring MVC
答案 0 :(得分:0)
您使用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)。