Java Spring Bean依赖注入(inject),conditionalOnBean

标签 java spring dependency-injection

尝试创建一个由 JavaConfig 用作 bean 定义源的类。

@Configuration
public class MyClass {
    @Bean
    @ConditionalOnProperty(name = "property")
    public A fuction1() {
       doSomething1(); // may return an exception
    }

    @Bean
    @ConditionalOnMissingBean(name = "fuction1")
    public A fuction2() {
        doSomething2();
    }

    @Bean
    public B fuction3(A a) {
        doSomething3(a);
    }
}

第三个bean定义有错误“无法 Autowiring 。A类型的bean有多个。”我如何告诉Spring尝试 Autowiring 第一个A以及它是否丢失然后尝试第二个 A,即遵循所描述的条件过程。希望这是有道理的。 谢谢!

最佳答案

您定义了两个具有相同名称的 bean,因此 Autowiring 问题很明显。尝试在您想要赋予优先级的 bean 上使用 @Primary

关于Java Spring Bean依赖注入(inject),conditionalOnBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59124121/

相关文章:

angular - 注入(inject)需要构造函数参数的服务

java - 为什么我不能将 List<Truck> 用作 Iterable<Vehicle>?

java - 休息客户端异常 : Could not write request: no suitable HttpMessageConverter found for request type

java - 将 Java Applet 替换为另一种技术

java - 带有 Spring Kafka 的 Spring Boot Rest API

java - 使用 Spring Data JPA 的模型库(继承)

asp.net-mvc - 是否可以在 ASP.NET MVC FilterAttribute 上使用依赖注入(inject)/IoC?

java - 从 Maven 迁移到 SBT

java - 启用 SSL 的 Spring Boot 阻塞连接池

java - REST 注释注入(inject)以及在一个请求中注入(inject)自定义 XML 对象