Spring Boot属性文件外化

时间:2017-09-13 08:17:46

标签: java maven tomcat spring-boot maven-profiles

我目前有3个属性文件:
application.properties

spring.profiles.active=@activatedProperties@

application-develoment.properties

#DB properties:
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/mydb
db.username=user
db.password=pswd

#Data source management:
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=true
hibernate.current_session_context_class=thread

application-production.properties

#DB properties:
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/myproddb
db.username=admin
db.password=admin

#Data source management:
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.show_sql=false
hibernate.current_session_context_class=thread

我的 pom.xml

中的my maven配置文件设置如下
<profiles>
    <profile>
        <id>development</id>
        <properties>
            <activatedProperties>development</activatedProperties>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>production</id>
        <properties>
            <activatedProperties>production</activatedProperties>
        </properties>
    </profile>
</profiles>

和我的DataSourceConfig:annotaion @PropertySource(value =&#34; classpath:application.properties&#34;)

当我使用开发或生产配置文件进行编译时,一切正常,但现在我想将属性文件外部化到我的Tomcat服务器的/ conf / localhost目录,有关如何做到的任何想法吗?

2 个答案:

答案 0 :(得分:0)

使用Spring Cloud Config服务器为您提供集中的外部化配置(以及更多其他配置)。

https://spring.io/guides/gs/centralized-configuration/

答案 1 :(得分:0)

您可以传递新的配置文件

java -jar myproject.jar --spring.config.location=classpath:/new.properties,file:/home/override.properties

这将覆盖jar中配置文件中定义的配置。