2014-07-27 38 views
0

考虑下面这段XML配置的属性映射的关键:定义使用@Bean

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
     <map> 
     <entry> 
      <key><util:constant id="respectTTL" 
static-field="com....SOLACE_JMS_RESPECT_TIME_TO_LIVE"/> 
      </key> 
      <ref bean="booleanFalse"/> 
     </entry> 
     </map> 
    </property> 
</bean> 

怎么会变成这样一部分在Java中使用@Bean定义:

<key><util:constant id="respectTTL" 
    static-field="com....SOLACE_JMS_RESPECT_TIME_TO_LIVE"/> 
</key> 

谢谢

+0

您是否问XML如何将XML片段转换为XML配置中的Java配置? – geoand

+0

是的 - 具体来说,如何将ID和STATIC-FIELD作为密钥 – user1052610

+0

的一部分在java中表达?您需要“ID”用于什么? – geoand

回答

0

真的不清楚你为什么害怕在这件事上做一些Java代码:

@Bean 
public JndiTemplate jndiTemplate() { 
    JndiTemplate jndiTemplate = new JndiTemplate(); 

    Properties environment = new Properties(); 
    environment.setProperty(com....SOLACE_JMS_RESPECT_TIME_TO_LIVE, "false"); 
    jndiTemplate.setEnvironment(environment); 

    return jndiTemplate; 
} 

由于您的常量是java代码,当然,@Bean用于java代码,因此您可以简单地使用Spring Java Config中的任何Java代码。

我们需要<util:constant>只是为了XML定义,因为我们不能简单地使用XML中的任何java代码。

顺便说一句,如果你可以直接使用你的常量,那么没有理由对冗余Bean开销的应用上下文。