为什么 @ConfigurationProperties 在我的案例中没有覆盖默认值?
Why is @ConfigurationProperties not overriding defaults in my case?
我希望 spring 引导从我的 application.properties 中的条目读取我的配置,但它们没有被激活。我的 application.properties 包含这些条目:
foo.user=nobody
foo.pass=notshared
我可以看到正在读取这个文件(我只有两次文件:一次在 src-tree 中,一次自动复制到 bin 中。文件是相等的):
2015-03-23 21:55:18.199 DEBUG 25004 --- [main] o.s.b.c.c.ConfigFileApplicationListener : Loaded config file 'classpath:/application.properties'
我有一个名为 FooConfig 的 class:
@Component
@ConfigurationProperties(prefix = "foo")
public class FooConfig {
private String user = "default";
private String pass = "default";
...
}
我有两个值的 getter 和 setter。
我将此配置 class 自动连接到我的代码中:
@Component
public class FooFunctions {
@Autowired
public FooFunctions(FooConfig fooConfig) {
log.debug("user={}", fooConfig.getUser());
...
问题是打印的是默认值 "default" 而不是 application.properties 中的值。
有什么提示吗?不幸的是,我还不能使用执行器来显示配置属性,因为这是一个非 Web 应用程序。
我在 spring boot 1.2.2
上尝试了所有这些
为了
@ConfigurationProperties(prefix = "foo")
注释工作,您的 spring 启动应用程序必须有
@EnableConfigurationProperties
注释集。
无需在 ConfigurationProperties bean 上设置 @Component 注解。
我希望 spring 引导从我的 application.properties 中的条目读取我的配置,但它们没有被激活。我的 application.properties 包含这些条目:
foo.user=nobody
foo.pass=notshared
我可以看到正在读取这个文件(我只有两次文件:一次在 src-tree 中,一次自动复制到 bin 中。文件是相等的):
2015-03-23 21:55:18.199 DEBUG 25004 --- [main] o.s.b.c.c.ConfigFileApplicationListener : Loaded config file 'classpath:/application.properties'
我有一个名为 FooConfig 的 class:
@Component
@ConfigurationProperties(prefix = "foo")
public class FooConfig {
private String user = "default";
private String pass = "default";
...
}
我有两个值的 getter 和 setter。 我将此配置 class 自动连接到我的代码中:
@Component
public class FooFunctions {
@Autowired
public FooFunctions(FooConfig fooConfig) {
log.debug("user={}", fooConfig.getUser());
...
问题是打印的是默认值 "default" 而不是 application.properties 中的值。 有什么提示吗?不幸的是,我还不能使用执行器来显示配置属性,因为这是一个非 Web 应用程序。 我在 spring boot 1.2.2
上尝试了所有这些为了
@ConfigurationProperties(prefix = "foo")
注释工作,您的 spring 启动应用程序必须有
@EnableConfigurationProperties
注释集。
无需在 ConfigurationProperties bean 上设置 @Component 注解。