Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what's the best way to use application constants in spring xml configuration?

I want to use my application constants within spring xml configuration.

I know to do that with spring SpEl with something like this:

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

So, is there a better way to do this?

like image 677
richarbernal Avatar asked May 16 '12 13:05

richarbernal


1 Answers

You could use <util:constant> (See C.2.2 The util schema):

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

It's debatable as to whether that's any better, though. Your SpEL version is more succinct.

Another option is to use the Java configuration style, which is more natural (see 4.12 Java-based container configuration):

@Bean
public SomeBean myBean() {
    SomeBean bean = new SomeBean();
    bean.setProperty(EXAMPLE_CONSTANT);  // using a static import
    return bean;
}
like image 54
skaffman Avatar answered Sep 27 '22 21:09

skaffman