0

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

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 个最终变量使用一堆 Setter/Getter。

注意:我使用的是 Spring 2.5

4

1 回答 1

2

最合适的方法可能是使用 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;
  ..
}
于 2013-07-16T22:43:00.367 回答