小编ryo*_*ska的帖子

Java 中的 Spring 配置 - 创建和使用同一个类的 2 个 bean,不使用 Autowired

我知道如何创建和使用两个相同类型的 Spring bean 的问题之前已经回答过,我已经阅读了一些关于 @Qualifier 和 @Resource 的内容,但我看到的所有答案都在上下文中的自动装配。在我的情况下,我尝试使用 bean 的地方在配置文件的另一部分,所以我不确定解决方案的哪些部分适用。我还有一个案例,我们正在以多种方式进行配置(xml 配置文件,以及带有 @Configuration 批注的 java 文件。代码如下所示)

import com.this.that.AuthProvider;
@Configuration
...
    @Bean
    public AuthProvider buildAuthProvider() {
        return new AuthProvider(someotherbean);
    }

    @Bean
    public MyConnectionManager buildMyConnectionManager(AuthProvider authProvider) {
        return new MyConnectionManager(authProvider);
    }
    ...
Run Code Online (Sandbox Code Playgroud)

另一个 spring 配置 xml 文件导入到 application-config.xml

  <bean id="MyAuthProvider" class="com.this.that.AuthProvider">
    <constructor-arg type="java.lang.String" ref="somedifferentbean" />
  </bean>

  <bean id="MyClient" class="com.that.this.MyClient">
    <constructor-arg type="com.this.that.AuthProvider"
      ref="MyAuthProvider" />
  </bean>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,尝试在 Java 配置文件中创建 MyConnectionManager 时出错。错误在构造函数 arg 上,具有以下信息 ) org.springframework.beans.factory.UnsatisfiedDependencyException ..(预期单个 bean 但发现 2: MyAuthProvider, buildMyConnectionManager())

我还在这里看到了另一个 bean,它引用了 AuthProvider 类,但它不只是将它指定为 …

java xml configuration spring javabeans

2
推荐指数
1
解决办法
6843
查看次数

标签 统计

configuration ×1

java ×1

javabeans ×1

spring ×1

xml ×1