【发布时间】:2021-11-17 01:18:31
【问题描述】:
cfg c= context.getBean(cfg.class);
第一次必须工作,但第二次出现错误:
没有可用的“java.lang.String”类型的合格 bean:预计在 至少 1 个符合自动装配候选资格的 bean。依赖 注释:{}
为什么?
@Configuration
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
class cfg{
public cfg(@Value("${xx}") String xx) {
System.out.println(xx);
}
}
application.properties
xx = 7
我还发现,如果用@Component 替换@Configuration 或添加(proxyBeanMethods = false),问题就会消失。
【问题讨论】:
-
由于所有类都在一个不是很长的单个文件中,我认为您应该将整个内容作为问题的一部分(而不是发布到 repo 的链接)。当您的回购不再存在时,这也将有助于其他人。