如何在Tomcat开发环境中更改Spring Boot属性的默认路径

时间:2018-05-03 11:09:04

标签: java spring spring-boot properties-file

我需要使用两个*.properties文件来确定Spring Boot应用服务器的配置。如何设置第二个配置路径?

我使用spring-boot-starter-parent版本1.5.10和此类*.properties文件:

spring.datasource.url=url
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialec
spring.jpa.properties.hibernate.current_session_context_class=
org.springframewok.orm.hibernate4.SpringSessionContext
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.idle-timeout=30000

现在,我需要从另一个属性文件中解决数据库信息。

编辑:请注意,我需要将第二个属性文件放在我的WAR文件之外的WEB-INF文件夹中。

2 个答案:

答案 0 :(得分:1)

(1)这是在开发模式和生产环境之间切换时的最佳做法。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles

版本1.5.10.RELEASE的参考:https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-external-config-profile-specific-properties

更具体地说,您可以创建3个文件

application.properties用于常见属性。

application-dev.properties仅适用于个人资料dev

中使用的属性

application-production.properties仅适用于个人资料production

中使用的属性

(注意:有关于命名的惯例)

application.properties中使用了行spring.profiles.active=dev(正在开发中)或spring.profiles.active=production(在生产中)使用的点概要

<强>(2)

  

请注意,我需要将第二个属性文件放在WAR文件之外   在WEB-INF文件夹中。

假设,您的文件为foo.properties。它在WAR文件之外,它没有Spring属性文件的性质。因此,Spring Framework / Spring Boot无法自动读取它。您必须编写几行Java代码来阅读foo.properties的内容,然后手动分配给配置(参见示例configuration class

答案 1 :(得分:0)

您可以使用@PropertySource

访问多个属性文件

遵循以下stackoverflow线程。 https://stackoverflow.com/a/47178674/7538821