0

我正在使用两个数据库,所以我在我的上下文 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");

    }

}
4

1 回答 1

0

直接来自文档

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

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

点击链接了解更多详情。

于 2013-11-30T08:07:48.830 回答