簡體   English   中英

如何在基於Java的配置中使用@Autowired?

[英]How to use @Autowired with Java-based config?

我在我的項目中使用基於Java的Spring配置,在@Configuration中的@Bean注釋方法中指定了bean的構造。 最近,最近,我開始認為也許最好使用@Autowired從@Configuration中刪除所有不重要的bean,而只保留其中的一小部分“ root”(關鍵服務和技術bean,例如那些Spring MVC)。

不幸的是,似乎Spring只能注意到@Autowired依賴項的實現,只要它們位於組件掃描的包中,而我不能不借助某些XML而這樣做。

是否可以在不顯式指定每個bean的情況下將@Autowired用於基於Java的配置?

如果我對您的理解正確,那么您期望Spring根據對Dao接口的自動連接依賴關系自動發現DaoImpl類。

這不會發生-您要么需要使用組件掃描,要么需要顯式聲明bean為<bean>@Bean

這樣做的原因是Java沒有提供機制來發現實現給定接口的類,而類加載器只是無法正常工作。

如果要通過dao實現Idao,並且希望通過@Autowire將該依賴項轉換為引用變量...,則需要首先:定義bean,以便您(在Java Based Config中)只需將impl類返回到接口。 Bean名稱就是您的方法名稱。

自動接線時,它將在您要自動接線的參考變量和聲明之間搜索匹配的名稱。

那你會沒事的。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM