创建bean时出现Spring Mongo Template错误

时间:2013-11-30 07:13:25

标签: spring-mvc spring-mongo

我正在使用两个数据库,因此我在My context servlet中添加了两个数据库。但它给出了错误.. 我的servlet.context是

<!-- Mongo settings -->
    <mongo:mongo id="mongo" host="192.148.5.5" port="27017" />

    <beans:bean id="mongoTemplate"
        class="org.springframework.data.mongodb.core.MongoTemplate">
        <beans:constructor-arg ref="mongo" />
        <beans:constructor-arg name="databaseName"
            value="WriteDB" />

    </beans:bean>
    <beans:bean id="mongoTemplate2"
        class="org.springframework.data.mongodb.core.MongoTemplate">
        <beans:constructor-arg ref="mongo" />
        <beans:constructor-arg name="databaseName"
            value="readDB" />

    </beans:bean>
    <mongo:repositories base-package="com.cheasyy.cofinding,com.cheasyy.cofinding.controller" />

错误是

注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:org.springframework.data.mongodb.core.MongoTemplate com.cheasyy.cofinding.service.profile.ProfileServiceImpl.mt;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义类型为[org.springframework.data.mongodb.core.MongoTemplate]的唯一bean:期望的单个匹配bean但找到2:[mongoTemplate,mongoTemplate2]     org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) 我失踪的地方?

我的ProfileServiceImpl类是 @Service

public class ProfileServiceImpl implements profileService {

    @Autowired
    MongoTemplate mt;
    @Override
    public void insert(Profile profile) {
        // TODO Auto-generated method stub
        System.out.println("in service ipl");
    mt.save(profile);   
    System.out.println("saved in db");

    }

}

1 个答案:

答案 0 :(得分:0)

直接来自the documentation

  

5.9.3使用限定符微调基于注释的自动装配

     

由于按类型自动装配可能会导致多个候选人,因此通常需要对选择过程有更多控制权。实现这一目标的一种方法是使用Spring的@Qualifier注释。

点击链接了解更多详情。