2016-03-30 61 views
2

我想以儘可能最短的方式在spring xml上下文中聲明一個String類型的bean。到目前爲止,這是我發現聲明字符串類型一行的spring bean

<bean id="bean1" class="java.lang.String"> 
     <constructor-arg type="String" value="someword" /> 
</bean> 

然而最短的方式,爲便於閱讀,我想這些以「棧」多整齊,有點像這樣,我不能只是把所有的代碼上一條線,因爲約行碼長隊標準:

<bean id="bean1" class="java.lang.String">blah blah </bean> 
<bean id="bean2" class="java.lang.String">blah blah </bean> 
<bean id="bean3" class="java.lang.String">blah blah </bean> 
+0

我可以知道創建'String'類bean的原因嗎? – user2004685

+0

要在整個環境中的很多地方引用,所以希望能夠從一個位置進行維護。 – Serge

+0

您應該創建一個接口或'final'類並將所有這些字符串放在那裏。您可以在整個項目中輕鬆地參考它。 – user2004685

回答

3

爲了提高可讀性我仍傾向於保持它的所有在上下文文件,我也可以單獨重新部署上下文文件到classpath,而無需重新部署整個.jar

如果要將所有內容保留在上下文文件中,並且想簡化它,則應該使用PropertyPlaceholderConfigurer而不是String beans。

下面是一個例子,

  1. 創建一個屬性文件命名爲project.properties
  2. 將所有Strings放入該文件中作爲{key=value}對。例如,

    myStrings.cnst1=FOO 
    myStrings.cnst2=BAR 
    myStrings.cnst3=FOOBAR 
    
  3. 現在,聲明PropertyPlaceholderConfigurer你的背景文件中,如下所示:

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
        <value>project.properties</value> 
    </property> 
    

  4. 現在,您可以輕鬆地訪問值如下:

    @Value("${myStrings.cnst1}") 
    private String someString; 
    

有關更多信息,請參閱this linkthis link