2012-10-19 34 views
3

我從來沒有使用Spring的工作之前,我已經運行到一個配置對象,它看起來有點像這樣@value註解在Spring中如何工作?

public class Config { 

@Value("${app.module.config1}") 
private String config1; 

@Value("${app.module.config2}") 
private String config2 

... 

public String getConfig1() { 
    return config1; 
} 

... 

誰能解釋這裏發生了什麼?我假設這是一些類型的代碼注入,但我無法找到這些值來自哪裏!

回答

4

它們允許您直接從變量中的屬性文件(系統或聲明的屬性)注入值。使用util:propertiestag您可以在applicationContext.xml

<util:properties id="message" location="classpath:com/your/program/resources/message.properties" /> 

添加像這樣指向了一個屬性文件名爲「message.properties」的一些內容:

application.hello.message = Hello World! 

,然後在你的java源文件,使用@Value註釋從這個屬性文件注入一個直接值:

@Value("#{message['application.hello.message']}") 
private String helloWorldMessage; 
+0

好的答案,謝謝。我在哪裏可以在文件結構中找到applicationContext.xml?這是一個相當大的軟件。 –

+1

它們可以在WEB-INF目錄中找到,通常是找到文件的好提示(雖然通常命名爲'applicationContext.xml',它可以取任何名稱)是檢出web.xml文件尋找'contextConfigLocation'上下文參數 – higuaro

1

@Value("${app.module.config1}")

這是彈簧表達式語言,其中所述彈簧的框架將尋找app.module.config1 JVM屬性從System.getProperties()並注入該屬性的值轉換成在該類config1屬性的一部分。有關當前文檔,請參閱this reference以獲取有關Spring 3.0.x和this reference的更多詳細信息。

相關問題