2

是否有人知道何時將自動裝入的字段(如果與通過構造函數或set方法沒有區別)注入到使用它的類中?在Spring中注入自動裝配值

例如,我試圖注入serverProperties的值。正如我所能找到的,當我試圖使用它的時候,該字段沒有獲得注入的值。設置類字段ROOT_DIRECTORY的初始值,其中serverProperties引發Null指針異常。當注射實際發生時?所有類字段初始化後?提前致謝。

PS:控制bean是一個帶註釋的控制器。

@Autowired 
@Qualifier("serverProperties") 
private Properties serverProperties; 

private final String ROOT_DIRECTORY = serverProperties.getProperty("root.path"); 

回答

1

這個bean創建

  1. (使用構造,工廠方法等)
  2. 依賴注入(您@Autowired屬性中設置)
  3. init methods被稱爲

這是在第三步當你需要設置ROOT_DIRECTORY ,而不僅僅是在課堂上定義它。所以,你的代碼看起來應該像

@Autowired 
@Qualifier("serverProperties") 
private Properties serverProperties; 

private String ROOT_DIRECTORY; 

public void init() { 
    ROOT_DIRECTORY = serverProperties.getProperty("root.path"); 
} 

,如果你使用註解控制你的bean應該有一個定義init方法類似

<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init"/> 
+0

謝謝你,我的豆實際上是一個帶註釋的控制器,這意味着我不能使用init-method =「init」。替代? – user1619397

+0

我想我已經找到它 @PostConstruct public void init(){ // ... } – user1619397

2

,您可以使用@PostConstruct

相關問題