2016-11-28 26 views
1

我想簡單,優選地基於註解的方式來注入外部屬性爲java程序,而無需使用彈簧框架(org.springframework.beans.factory.annotation.Value;進樣的應用性能沒有Spring

SomeClass.java

@Value("${some.property.name}") 
private String somePropertyName; 

application.yml

some: 
    property: 
    name: someValue 

是否有推薦的方法在標準庫中執行此操作?

+1

不,這就是爲什麼Spring的功能存在。 – chrylis

+0

因爲我想要一個非Spring的答案,所以我不應該包含'spring'- *標籤 – erjoalgo

回答

2

我最終使用apache commons configuration

的pom.xml:

<dependency> 
     <groupId>commons-configuration</groupId> 
     <artifactId>commons-configuration</artifactId> 
     <version>1.6</version> 
    </dependency> 

的src /.../ PropertiesLoader.java

PropertiesConfiguration config = new PropertiesConfiguration(); 
config.load(PROPERTIES_FILENAME); 
config.getInt("someKey"); 

/src目錄/主/資源/應用。屬性

someKey: 2 

我不想將我的庫變成Spring應用程序(我想要@Value註釋,但沒有應用程序上下文+ @Component,額外的bean,額外的Spring生態系統/行李,這在我的項目中沒有意義)。

+0

謝謝你回答你的問題。我知道這是一個糟糕的評論,但很少有人回來幫助其他可能有同樣問題的人。那謝謝啦。 –

0

我曾經被告知有java中的標準DI庫:javax.inject(JSR-330)包。但是我沒有在jdk 1.8中找到它(但是名爲javax.injtct-1.jar的jar)。

+0

這是一個沒有實現的API包。 – chrylis

+0

所以答案是肯定的,你可以在沒有Spring的情況下做到這一點,但是不可以,只有jdk才能做到這一點? – yuxh

+0

我確定有其他的實現可以做類似的事情,但不是在JRE中。 – chrylis

相關問題