【发布时间】:2017-05-18 06:53:46
【问题描述】:
我有一个名为 CommonConfig 的配置类,到目前为止它运行良好……
@Data
@Component
@ConfigurationProperties(prefix = “my")
public class CommonConfig {
private String foo;
private String bar;
private SubA subA;
@Data
public static class SubA {
private String baz;
private SubB subB;
@Data
public static class SubB {
private String qux;
}
}
}
还有Yaml property 文件:
my.foo: a
my.bar: b
my.sub-a.baz: c
my.sub-a.sub-b.qux: d
当我想将map 放入 SubB 时,我的问题就开始了:
my:
foo: a
bar: b
sub-a:
baz: c
sub-b:
qux: d
map:
number-one: 1
number-two: 2
number-three: 3
我尝试在我的 SubB 类中添加一个简单的地图声明:
...
@Data
public static class SubB {
private String qux;
private Map<String, Integer> map = new HashMap<>();
}
当我运行它时,所有其他属性都在配置中,但地图是空的。 我也尝试过不初始化地图,但它仍然为空。
我的@SpringBootApplication 类之前只使用了一个注释就可以正常工作。基于其他一些 StackOverflow 问题,我尝试添加 @EnableConfigurationProperties,但没有任何区别。
【问题讨论】:
-
为我工作。如果您发布完整项目的链接,我们可能会看到您没有告诉我们的内容。
-
非常感谢您的检查!我按照描述制作了示例,它也对我有用,所以我开始移植我的实际应用程序,看看有什么不同。这一切都归结为不读取属性文件,因为应用程序名称不匹配。将另一个错误归结为 PEBKAC 或 ID-10-T 错误。 ://
标签: spring-boot yaml