簡體   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