從this Spring documentation我知道,當我使用@Bean,默認爲已經等同於:在春天,'autowire = Autowire.NO'做什麼?
@Bean(自動裝配= Autowire.NO)
(默認)不自動裝配。 Bean引用必須通過ref元素定義。建議不要將更改默認設置用於較大的部署,因爲指定的協作者明確提供了更好的控制和清晰度。它在一定程度上記錄了系統的結構。
我只是想了解這對我意味着什麼。如果我的系統是100%Java Config 並且沒有XML配置,那麼從我所知道的情況來看,當我使用@Bean時,'Autowire.no'沒有任何影響。
編輯
通過「不影響」我的意思是這個bean的其他@Autowired引用是自動連接(在其他Java配置類)。我懷疑這是因爲在Java Config中沒有定義明確的'ref元素',所以這個(默認)設置沒有效果。
例子:
首先配置:
package a.b.c;
@Configuration
public class AlphaConfig {
@Bean(autowire = Autowire.NO)
public AlphaBeanType alphaBean() {
return new AlphaBeanType();
}
}
然後在第二個配置:
package d.e.f;
import a.b.c.AlphaBeanType;
@Configuration
public class AnotherConfig {
@Autowire
private AlphaBeanType alphaBeanType;
@Bean
. . .
}
我看到的是, 'alphaBeanType' 在第二配置類總是自動裝配 - 這似乎與文檔有衝突 - 因此我的問題。
末編輯
當然,我不能完全從文檔告訴!有人有確切消息麼?
我都投了贊成票並選擇了這個答案(認爲是25分!),但是Eugene給了他獎金,因爲他第一次得到了相同的答案 - 感謝細節! – JoeG