2014-07-27 37 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開銷的應用上下文。