我需要使用两个*.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
文件夹中。
答案 0 :(得分:1)
(1)这是在开发模式和生产环境之间切换时的最佳做法。
版本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