当尝试注入一个 时Optional<T>,Spring 从不调用我的 bean,而是注入一个Optional.empty().
这是一些示例代码:
@Configuration
public class Initialize {
@Value("optionalValue")
private String testString;
@Bean (name = "getOptionalString")
public Optional<String> getOptionalString() {
return Optional.of(this.testString); //breakpoint put here, is never called
}
}
@Component
public class Test {
public Test(@Qualifier("getOptionalString") Optional<String> optional) {
// optional's value is Optional.empty() here
}
我注意到(通过设置断点)@Bean永远不会被调用。如果我删除Optional<String>,并简单地返回String,那么它就可以了!
我知道Spring有它自己的可选依赖项,但我很困惑为什么这不起作用(无论我在网上读到的内容都说它应该),而且我也不明白它是如何将其初始化为Optional.empty()?
白猪掌柜的
相关分类