我正在使用彈簧框架4.指定順序彈簧@Autowired
我有一個類(說ClassA),其中使用了另一個類(說ClassB)。 ClassA的成員變量從ClassB中獲取值。 ClassB具有從屬性文件讀取數據的靜態方法。在ClassB中,已使用@Autowired
註釋注入靜態成員變量ApplicationContext
。
我想要的是,我想確保當ClassA使用它的成員變量時,它應該獲得從屬性文件中讀取的所有值。並且對於該ClassB應該獲得ApplicationContext
全部設置爲從MessageSource
讀取。因爲ClassA標記爲@Component
,Spring加載ClassA,但是當它試圖初始化成員變量時,它變得NullPointerException
,因爲ApplicationContext
尚未初始化。
所以我的問題是,有沒有什麼辦法可以讓Spring告訴某些bean應該以某種順序或類似的方式初始化。我嘗試使用@DependsOn
註釋並將@Bean
指定爲ApplicationContext
的吸氣器方法。但它給下面的例外:
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'applicationContext': Requested bean is currently in creation: Is there an unresolvable circular reference?
在這個問題上的任何想法?
感謝
如果您想要從消息源讀取屬性,應該檢出@Value註釋並避免注入整個應用程序上下文。每個類應該有最少的依賴關係 – geoand