2013-07-16 56 views
0

我有一堆靜態最終字符串變量的文件:在Spring中存儲靜態最終常量?

static final String ENTER = "Enter"; 
static final String EXIT = "Exit"; 
static final String FORCE = "Force"; 

等。可能大約有20種。

但是,我想定義和加載我的Spring XML這些值,而不是在.java文件中定義它們。我如何將這些聲明添加到我的spring xml文件中,然後我的.java文件將如何查看?

我會做類似:

<bean id="enter" class="java.lang.String"> 
    <property name="ENTER"> 
     <constructor-arg type="java.lang.String" value="Enter"/> 
    </property> 
</bean> 

將使用的Util的:恆得心應手這裏,怎麼樣?

無論哪種情況,我的Java文件現在會是什麼樣子?我想避免爲我所有的20-30個最終變量設置一堆Setters/Getters。

注意:我正在使用Spring 2.5

回答

1

最適合使用Spring屬性的方法。創建一個文件myconstant.properties,將其放置在類路徑的根和設置您的常量有

com.mycompany.myapp.ENTER=Enter 
com.mycompany.myapp.EXIT=Exit 
com.mycompany.myapp.FORCE=Force 

,創造你的應用程序上下文XML提供一個PropertyPlaceholderConfigurer。該屬性,則可以使用${..}語法

<context:property-placeholder location="classpath:/myconstant.properties"/> 

<bean class="com.mycompany.SomeClass"> 
    <property name="blah" value="${com.mycompany.myapp.ENTER}"/> 
</bean> 

這也可以被注入到bean類被取代

@Component 
public MyClass { 
    @Value("${com.mycompany.myapp.ENTER}") private String ENTER; 
    .. 
} 
+0

什麼修改將需要進入java文件?你必須添加任何註釋嗎? – James

+0

編輯我的答案。試試'@ Value'註釋 – gerrytan

+0

還有一個問題/關注點,我必須添加setter/getters。我經常注意到Spring bean,你必須爲你的課程的每個領域設置setter/getters。如果我必須爲我的課程的每個性能變量提供20個setter/getters – James