【发布时间】:2013-11-30 07:13:24
【问题描述】:
我正在使用两个数据库,所以我在我的上下文 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 类是 @服务
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");
}
}
【问题讨论】:
-
你读过邮件吗?如果定义了两个 MongoTemplate 并且您没有告诉 Spring 要自动装配哪一个,那么 Spring 如何在 ProfileServiceImpl 中自动装配 MongoTemplate? ProfileServiceImpl 的代码在哪里?
-
我用 ProfileServiceImpl 类编辑了代码。
-
这里看起来是同样的问题:stackoverflow.com/questions/20536791/…