我正在使用两个数据库,因此我在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");
}
}
答案 0 :(得分:0)
直接来自the documentation:
5.9.3使用限定符微调基于注释的自动装配
由于按类型自动装配可能会导致多个候选人,因此通常需要对选择过程有更多控制权。实现这一目标的一种方法是使用Spring的@Qualifier注释。
点击链接了解更多详情。