繁体   English   中英

Spring-data-mongo:除非我添加@Component批注,否则不会连接MongoRepository

[英]Spring-data-mongo: MongoRepository not being wired unless I add @Component annotation

我的spring-data-mongo行为有些奇怪,其中<mongo:repositories/>标记未扫描我的存储库软件包。 我正在使用spring 3.2.3.RELEASE和spring-data-mongo 1.2.1.RELEASE。

我有一个名为edowmis的项目,其中有2 maven modules ,数据datalayerweb我正在单独使用数据datalayer ,因此可以忽略其他模块。 我有一个数据层的应用程序上下文 数据层配置

所以我想通过编写一个小的单元/集成测试来测试我的设置,但是我注意到我无法自动装配UserRepository因为它说没有这样的bean 单元测试

由于我使用的是IntelliJ,因此当一切正常时,我可以看到某些视觉效果。 我已经将<context:component-scan/>到我的应用程序上下文中,但是没有结果。 未扫描UserRepository

但是,当我添加@Component批注时,它已经开始标识类。 正在扫描的组件

您可能需要的所有信息都在pastie.org上

@component@Repository真正需要什么不对我的配置?

是的,@ Component或@Repository是必需的。 扫描仅表明spring应该查找通过注释(@ Component,@ Repository,@ Service)标识的类,并将其作为bean加载。 如果不使用存储库或组件扫描,则必须通过XML配置或Java配置手动实例化所有spring-managed bean。

您必须告诉spring将哪些类转换为bean,因为它没有假定classpath中的所有内容都应该是spring-managed bean,这就是为什么需要使用批注的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM