gpt4 book ai didi

java - 为什么@ConfigurationProperties 在我的情况下不覆盖默认值?

转载 作者:行者123 更新时间:2023-12-02 04:51:12 27 4
gpt4 key购买 nike

我希望 Spring Boot 从 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 的类:

@Component
@ConfigurationProperties(prefix = "foo")
public class FooConfig {
private String user = "default";
private String pass = "default";
...
}

我有两个值的 getter 和 setter。我将此配置类自动连接到我的代码中:

@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 Boot应用程序必须有

@EnableConfigurationProperties

注释集。

无需在 ConfigurationProperties bean 上设置 @Component 注解。

关于java - 为什么@ConfigurationProperties 在我的情况下不覆盖默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29220498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com