【问题标题】:How can I use application.properties of child gradle module?如何使用子 gradle 模块的 application.properties?
【发布时间】:2018-04-13 13:57:13
【问题描述】:

我有这样的项目结构。

     parent
     |   |         |
 child1  child2  child3 ....
      |   |
     common

common 项目中,我想提取child1child2 的所有常见事物

我想提取公共属性到公共项目的application.properties

但是如果在子项目中提取公共属性后,我会写如下内容:

@Configuration
public class MongoDataConfiguration {
    @Value("${spring.data.mongodb.database}")
    private String database;

在公共项目的application.properties 中找不到属性:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.data.mongodb.database' in value "${spring.data.mongodb.database}"

我怎样才能实现它?

附言

家长settings.gradle:

include 'child1'
include 'child2'
include 'child3'
...

在每个孩子build.gradle:

compile project(':common')

附言

将常用项目中的文件重命名为commons.properties并写入即可:

 @PropertySource("classpath:commons.properties")

但最好有application.properties 的名字。

【问题讨论】:

    标签: java spring gradle properties configuration


    【解决方案1】:

    实际上你把 common-project 包含到 child1, child2 中,你只需使用注解 @Value("${spring.data.mongodb.database}") 来搜索 child1 的 application.properties 中的属性。所以如果你想获取 common-project 中的属性,你应该提供一个在您的公共项目中获取这些属性的方法。

    【讨论】:

    • 你知道如何调用这个方法吗?哪种方法?
    猜你喜欢
    • 2015-11-01
    • 2020-06-02
    • 1970-01-01
    • 2020-01-25
    • 2014-09-30
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多