相关疑难解决方法(0)

Spring @Autowired有2个相同类型的bean

我有以下定义.

@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文件中.

java spring

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

标签 统计

java ×1

spring ×1