如何排除默认的application.properties使用maven中的配置文件为spring boot项目添加自定义属性文件?

时间:2016-08-16 08:34:59

标签: java maven spring-boot war spring-boot-maven-plugin

我使用spring boot开发了一个Web应用程序。我在src / main / resources staging,qa,production中有三个资源文件夹,它们由特定环境的应用程序属性和日志记录配置组成。与这些文件夹一起,我在resources文件夹中有application.properties和logging配置,我将它用于开发环境。我想使用spring-boot-maven插件根据环境打包war文件。我是maven的新手,任何帮助都会受到赞赏吗?

2 个答案:

答案 0 :(得分:2)

Convetion为application-{profileName}.properties

第10点和第11点:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

例如application-test.properties 它会覆盖application.propertiespom.xml

中制作个人资料

简介简介: http://maven.apache.org/guides/introduction/introduction-to-profiles.html

答案 1 :(得分:1)

您可以使用Spring配置文件,而不是使用Maven为每个环境的类路径添加不同的文件夹。

首先为每个环境创建不同的 application.properties ,例如:

  • application-staging.properties
  • application-qa.properties
  • application-production.properties

对于日志记录,您可以使用logging.config属性。因此,在 application-staging.properties 中,您可以使用:

logging.config=classpath:logback-staging.xml

在其他属性文件中,您可以使用不同的logging.config属性。

现在只需使用spring.profiles.active属性运行您的应用程序。

但是,更简单的解决方案是使用externalized configuration。您可以通过在正确的环境中将JAR / WAR旁边的 application.properties 文件放在正确的环境中而不是在您的文件上进行外部化,而不是每次都需要更改特定配置文件的配置时进行外部化。类路径。 Spring启动会自动启动它。

现在,您还可以通过在JAR / WAR旁边放置一个logback.xml(或log4j2.xml,...)文件来外部化您的日志记录配置,并使用以下命令配置(外部化)应用程序属性:

logging.config=file:logback.xml

这使您可以编辑配置和日志记录,而无需更改JAR / WAR。