在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 {}
答案 0 :(得分:0)
春天不应该抛出异常吗?当多个时,弹簧如何通过类型来解析自动装配 豆子被发现了?
如果某些类名确实发生冲突,那么JVM将尝试从类路径中较早出现的jar加载它们。因此,Spring不会抛出任何异常,而只是autowires
首先加载JAR的类CustomerServiceImpl(假设为CustomerServiceImpl implements CustomerService
)。
有关课程加载的详细信息,请查看here。