【问题标题】:Set Use value application.properties from another properties [duplicate]从另一个属性设置使用值application.properties [重复]
【发布时间】:2020-07-11 04:48:33
【问题描述】:

我正在构建一个 spring boot 应用程序,application.properties 值可以从另一个属性中获取

我有一个这样的 application.properties

spring.datasource.url= jdbc:oracle:thin:@//localhost:1521/test
org.quartz.dataSource.qDS.URL=jdbc:oracle:thin:@//localhost:1521/ORCL

Spring boot 可以这样吗?

db.connections.url=jdbc:oracle:thin:@//localhost:1521/test
spring.datasource.url= db.connections.url
org.quartz.dataSource.qDS.URL=db.connections.url

【问题讨论】:

  • 您是指其他属性值还是其他属性文件?
  • 否,但在同一个属性文件中。但是如果不可以的话,从另一个文件中读取是可以的,只要在java类中没有配置即可。

标签: java spring spring-boot


【解决方案1】:

我已经解决了添加 ${...} 以设置其他属性的值

我就是这样解决的:

app.dbconnectionstring=jdbc:oracle:thin:@//localhost:1521/ORCL

#spring default datasource
spring.datasource.url=${db.dbconnectionstring}

#quartz datasource
org.quartz.dataSource.qDS.URL=${app.dbconnectionstring}

【讨论】:

  • 酷!我迟到了 23 秒。但很高兴你得到了解决方案。
  • 这是正确的方法。更健壮(不依赖于文件名)和更具可读性。
【解决方案2】:

依赖于其他属性的 Spring 属性可以在您的类中定义如下:

@Value("#{myFile:${myProperties}/myfile.txt}")
private String myFileName;

Spring可以组合属性

myDir=/path/to/mydir 

myFile=${myDir}/myfile.txt

属性文件:

myDir=/path/to/mydir

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2017-08-20
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多