首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springboot @ConfigurationProperties嵌套的yaml属性不加载

Springboot @ConfigurationProperties嵌套的yaml属性不加载
EN

Stack Overflow用户
提问于 2019-03-18 17:21:21
回答 1查看 5.4K关注 0票数 5

出于某种原因,非嵌套属性加载,但嵌套不加载。

配置:

代码语言:javascript
复制
spring:
  profile: junit
  profiles:
    include: base

配置类:

代码语言:javascript
复制
@ConfigurationProperties(prefix = "spring")
public class MyFirstProperties {

    private String profile;
    private Profiles profiles;
    // getters and setters


    public class Profiles
    {
        private String include;
    // getters and setters
    }
}

主修班:

代码语言:javascript
复制
    @SpringBootApplication
    @EnableConfigurationProperties(MyFirstProperties.class)
    public class Main {
        public static void main(String... args) {
            SpringApplication.run(Main.class, args);
        }
}

当我将配置类注入控制器并调用getter以获取非嵌套属性时,它将返回其值。但是嵌套属性的getter返回null。

用ConfigurationProperties及其自己的前缀注释内部类似乎不起作用。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-18 17:35:19

您需要实例化您的profiles属性

代码语言:javascript
复制
private Profiles profiles = new Profiles();

就这样。

之所以会发生这种情况,是因为您的内部class 不是 static

您不能直接实例化这种类型的class,但只能在包含一个的上下文中实例化。

做你的class static,你就可以走了

代码语言:javascript
复制
public static class Profiles { ... }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55226817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档