具有帶有硬編碼在下面的配置文件中設置的屬性駐留在一個Java Maven的web應用程序外部化的Web應用程序配置:最佳方式使用屬性文件和Maven型材
的src /主/資源/ database.xml
<beans xmlns="http://www.springframework.org/schema/beans">
<bean id="aDatasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://anIpAddress/mydatabase?zeroDateTimeBehavior=convertToNull</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>password</value></property>
</bean>
</beans>
的src /主/資源/ log4.j.properties
log4j.appender.RF.File=/opt/apache-tomcat-7.0.78/webapps/myapp/WEB-INF/classes/logs.log
之前,我運行Maven乾淨安裝,我不斷地編輯這些文件由內而外database.xml更換:
aniPAddress with localhost
root with my local database's root user
password with my local database's root password
內log4.properties:
/opt/apache-tomcat-7.0.78/ with $CATALINA_HOME
問題(S):
- 有沒有辦法來外部配置文件,所以我沒有明確地改變它每次我做了一個新的Git結賬?
例如
我應該創建位於包含下列屬性的src/main /資源內的application.properties文件:
database.url = localhost
database.user = root
database.password =
tomcat.home = $CATALINA_HOME or /etc/tomcat7/
如何將這些明確設置內部database.xml和/或log4j.properties?
- 有沒有辦法使用maven profile功能切換配置屬性?
例如
maven clean -install -p dev
maven clean -install -p prod
如何配置pom.xml文件以反映問題1中所需的行爲?
如果你正在使用spring(由你的xml判斷),我真的不明白爲什麼你不能在application.properties中設置你的屬性(就像你自己提到的那樣)。然後你可以設置路徑到那個配置,比如--spring.config.location =/loc/to/config/file。您甚至可以使用配置文件,例如:application-dev.pproperties並將您的配置文件設置爲dev --spring.profiles.active = dev。 – CrazySabbath