多个autowire类型的依赖性解决方案?

时间:2016-10-31 15:17:30

标签: java spring dependency-injection autowired

在module1.jar中:

<bean id="customerService" class="com.service.CustomCustomerServiceImpl" > </bean>

在module2.jar中:

<bean id="customerService" class="com.service.CustomerServiceImpl" > </bean>


public class CustomerController {
    @Autowired
    protected CustomerService customerService;

// getters and setters  
}

我看到CustomerService始终注入了CustomCustomerServiceImpl。

我的问题是在启动服务器时应该抛出异常 因为有两个类型为CustomerService的bean(CustomCustomerServiceImpl和CustomerServiceImpl)。

不应该抛出异常吗?

当找到多个bean时,spring如何通过类型解析autowire注释?

更新: -

public class CustomCustomerServiceImpl extends CustomerServiceImpl {}

1 个答案:

答案 0 :(得分:0)

  

春天不应该抛出异常吗?当多个时,弹簧如何通过类型来解析自动装配   豆子被发现了?

如果某些类名确实发生冲突,那么JVM将尝试从类路径中较早出现的jar加载它们。因此,Spring不会抛出任何异常,而只是autowires首先加载JAR的类CustomerServiceImpl(假设为CustomerServiceImpl implements CustomerService)。

有关课程加载的详细信息,请查看here