我想在spring xml配置中使用我的应用程序常量。
我知道用Spring SpEl可以做到这一点,就像这样:
<bean class="example.SomeBean">
<property name="anyProperty" value="#{ T(example.AppConfiguration).EXAMPLE_CONSTANT}" />
<!-- Other config -->
</bean>
那么,有没有更好的方法可以做到这一点?
最佳答案
您可以使用<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>
不过,关于它是否更好还有待商de。您的SpEL版本更加简洁。
另一个选择是使用Java配置样式,这种样式更自然(请参阅4.12 Java-based container configuration):
@Bean
public SomeBean myBean() {
SomeBean bean = new SomeBean();
bean.setProperty(EXAMPLE_CONSTANT); // using a static import
return bean;
}