我有一个带有一堆静态最终字符串变量的文件:
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
答案 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;
..
}