这个@Configuration类需要一个实现JmsProperties的bean,它在@ConditionalOnBean中声明
@Configuration
@ConditionalOnBean(JmsProperties.class)
public class JmsConfiguration {
@Inject
private JmsProperties properties;
...
}
获得例外:
Caused by:
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [com.....JmsProperties] found for dependency:
是不是@ConditionalOnBean应该检测到这个丢失的bean而不是首先尝试注入依赖项?
提前感谢任何指针
答案 0 :(得分:2)
您已在Spring Boot tracker上交叉发布,开发人员回复了:
在处理完所有配置类之后评估
@ConditionalOnBean
,即您不能使用它来使整个配置类以另一个bean的存在为条件。但是,您可以在必须使所有配置的bean以另一个bean的存在为条件的情况下使用它。
答案 1 :(得分:0)
您必须使用@ComponentScan(basePackages =""。 没有使用它你的应用程序将不会发现&注册/实例化所有定义的bean,因此你最终会遇到这种类型的异常,即找不到bean。