- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试连接同一台机器上的两个不同数据库,我已引用 here
但是我遇到了以下异常
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'locationServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.data.mongodb.core.MongoTemplate com.cheasyy.cofinding.service.profile.LocationServiceImpl.mt; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.data.mongodb.core.MongoTemplate] is defined: expected single matching bean but found 2: [mongoTemplate, readTemplate]
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
我的 servlet-context.xml 看起来像
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<beans:bean
class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources
in the /WEB-INF/views directory -->
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan
base-package="com.cheasyy.cofinding,com.cheasyy.cofinding.controller,com.cheasyy.cofinding.model.profile,com.cheasyy.cofinding.service.profile" />
<!-- Mongo settings -->
<mongo:mongo id="mongo" host="192.168.1.3" port="27017" />
<beans:bean id="mongoTemplate"
class="org.springframework.data.mongodb.core.MongoTemplate">
<beans:constructor-arg ref="mongo" />
<beans:constructor-arg name="databaseName"
value="cofinding" />
</beans:bean>
<mongo:repositories
base-package="com.cheasyy.cofinding,com.cheasyy.cofinding.controller,com.cheasyy.cofinding.model.profile,com.cheasyy.cofinding.service.profile" />
<!-- adding another mongo template -->
<!-- Mongo settings -->
<mongo:mongo id="read" host="192.168.1.3" port="27017" />
<beans:bean id="readTemplate"
class="org.springframework.data.mongodb.core.MongoTemplate">
<beans:constructor-arg ref="read" />
<beans:constructor-arg name="databaseName"
value="readDB" />
</beans:bean>
<mongo:repositories
base-package="com.cheasyy.cofinding,com.cheasyy.cofinding.controller,com.cheasyy.cofinding.model.profile,com.cheasyy.cofinding.service.profile" />
</beans:beans>
我已经尝试过
@Autowired
@Qualifier("readTemplate")
private MongoTemplate mt1;
@Autowired
@Qualifier("mongoTemplate")
private MongoTemplate mt;
最佳答案
当有多个可以 Autowiring 的bean时,需要添加@Qualifier
注解指定要注入(inject)的实例的名称:
@Autowired
@Qualifier("someBeanName")
private SomeType someType;
文档的相关部分:Fine-tuning annotation-based autowiring with qualifiers
关于java - 添加多个 mongoTemplates 到 servlet-context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20627583/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我已经在 Spring Boot 中配置了 MongoDB 连接。现在我想使用 MongoTemplate find() 方法运行自定义查询。但 Spring Boot 不允许我这样做。 @Autow
从 1.9.0.RELEASE 开始,spring-data-mongodb 支持批量更新。 BulkOperations ops = template.bulkOps(BulkMode.UNORDE
我有一个名为 collection_One 的集合.我想重命名集合,但失败了。 mongotemplate给我看了: executing the 'renameCollection' command
MongoTemplate 不返回结果。 JSON: { "_id" : ObjectId("51acf6ab0d5d46077ae12b2a"), "docType" : "row",
我正在使用 MongoTemplate 来执行我的 Mongo 查询。我想知道计数是否适用于限制集? 尽管设置了限制,为什么查找查询会搜索完整集合(根据查询)?例如我写的查询可能会产生 10000 条
我正在尝试使用 MongoTemplate 和聚合框架在 Spring Boot 项目中运行聚合管道。 我的查询执行时没有任何异常。但是,当我尝试在 AggregationResults 实例上调用
我正在尝试从 mongoDb 中的嵌入字段数组中删除一个项目。数组是一种字符串类型,如下所示。 { _id: 1, fruits: [ "apples", "pears", "orange
对于 Upsert MongoTemplate 提供了一种按以下方式使用的方法。 但是,它只会设置名称。如果我想插入与新用户对象关联的所有键该怎么办?即除了姓名之外,我还想插入电子邮件和许多其他值。我
我需要在 MongoTemplate 中提取子文档,但不知道该怎么做。 我保存的文档是: { "_id" : "FooUser", "_class" : "com.domain.Use
我需要编写一个查询,它可以查找数据库中子数组大小大于某值的对象。 我的对象看起来像: { "_id" : ObjectId("sbg8732god78"), "studentIds"
我有一个端点,它接受文档 ID,以及我想要更新的嵌套数组中的 Employee 对象。这工作正常。我尝试修改端点以获取超过 1 名员工并让它一次更新所有员工,但我无法让它工作。我不确定我是否格式错误,
我想创建一个 DAO,将用户保存到我的数据库中。他们应该有唯一的登录名,这有点问题,因为 mongo db 没有事务。我有一个类,其中的用户如下所示: @Document(collection = "
我正在尝试转换以下查询: { "cd" : { "$lte" : ISODate("2013-06-30T09:12:29Z") , "$gte" : ISODate("2013-06-11T09:1
我的以下 mongodb 查询按预期工作 db.importedDataItems.aggregate({ $match: { mobile: "1234567890"
我正在根据多个参数生成一个复杂的 Mongo 查询。我想用 Criteria 辅助类制定的标准之一是: {"field1": {$exists: true, $ne: false}} 我试着用: Cr
在我们的应用程序中,我们管理许多 MongoTemplate 实例,每个实例代表一个客户端数据库。对于大多数数据库操作,我们希望使用 secondaryPreferred 读取首选项,以便利用集群的只
我在 MongoDB 中有像这样的 JSON 文档 { "os" : "Windows 10" } { "os" : "WINDOWS 8" } { "os" : "UBunTu 18.0
我正在使用 MongoTemplate 进行我的数据库操作。现在我想从所选结果中获取最大字段值。有人可以指导我如何编写查询,以便当我将查询传递给 find 方法时,它将返回我所需的最大文档字段。提前致
我有一个 Entity 类,它是一个包含基本字段的抽象类。考虑以下代码: Entity entity = new DogEntity() mongoTemplate.save(entity) 在这种情
我是一名优秀的程序员,十分优秀!