我有以下定义.
@Autowired
DaoType1<object1> someDao;
@Autowired
DaoType1<object1> someListDao;
Run Code Online (Sandbox Code Playgroud)
在我的bean定义中,我有两个相同类型的bean
<bean id="someDao" class="com.example.DaoType1" />
<bean id="someListDao" class="com.example.DaoType1" />
Run Code Online (Sandbox Code Playgroud)
第二个bean是从另一个xml文件导入的,如果这有所不同的话.它们也有不同的属性.为什么spring没有抛出错误,因为已经定义了2个相同类型的bean.它是否使用变量名称,因为它们匹配bean ID.如果我将@Qualifiers用于两个不同的bean,则dao是不同的,并且功能按预期工作.
这是一个更简洁的版本.因为我没有相关性,所以我遗漏了其他豆子.
applicationContext.xml中
<import resource="classpath:dm-services-crud.xml"/>
<bean id="ruleListCrudService" class="com.idna.dm.service.crud.impl.RuleCrudServiceImpl">
<property name="crudDao" ref="ruleListCrudDao" />
</bean>
Run Code Online (Sandbox Code Playgroud)
DM-服务,crud.xml
<bean id="ruleCrudService" class="com.idna.dm.service.crud.impl.RuleCrudServiceImpl">
<property name="crudDao" ref="ruleCrudDao" />
<property name="ruleNetworkOfNodesCrudService" ref="ruleNetworkOfNodesCrudService" />
<property name="elementMappingsCrudService" ref="elementMappingsCrudService" />
<property name="ruleCrudDao" ref="newRuleCrudDao"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
default-autowire根本不存在于我的任何xml文件中.