在Spring中存储静态最终常量?

时间:2013-07-16 22:33:32

标签: spring static constants

我有一个带有一堆静态最终字符串变量的文件:

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:Constant会不方便,怎么样?

同样在任何一种情况下,我的Java文件现在会是什么样子?我想避免为我所有的20-30个最终变量都有一堆Setters / Getters。

注意:我使用的是Spring 2.5

1 个答案:

答案 0 :(得分: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;
  ..
}
相关问题