12

我想在 spring xml 配置中使用我的应用程序常量。

我知道用 spring SpEl 做到这一点,如下所示:

<bean class="example.SomeBean">
    <property name="anyProperty" value="#{ T(example.AppConfiguration).EXAMPLE_CONSTANT}" />
    <!-- Other config -->
</bean>

那么,有没有更好的方法来做到这一点?

4

1 回答 1

29

您可以使用<util:constant>(参见C.2.2 The util schema):

<bean class="example.SomeBean">
    <property name="anyProperty">
       <util:constant static-field="example.AppConfiguration.EXAMPLE_CONSTANT" />
    </property>
</bean>

不过,这是否更好还有待商榷。您的 SpEL 版本更简洁。

另一种选择是使用 Java 配置风格,更自然(参见4.12 基于 Java 的容器配置):

@Bean
public SomeBean myBean() {
    SomeBean bean = new SomeBean();
    bean.setProperty(EXAMPLE_CONSTANT);  // using a static import
    return bean;
}
于 2012-05-16T13:41:26.630 回答