2016-07-19 40 views
0

我在spring xml文件中有以下詳細信息。現在我想將它轉換成spring java config bean。如何在spring中使用java配置bean

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
     <property name="host" value="test" /> 
     <property name="port" value="111" /> 
     <property name="username" value="[email protected]" /> 
     <property name="password" value="test123" /> 
     <property name="javaMailProperties"> 
      <props> 
       <prop key="mail.smtp.auth">true</prop> 
       <prop key="mail.smtp.starttls.enable">true</prop> 
      </props> 
     </property> 
    </bean> 
    <bean id="utilityObject" class="com.ezone.utility.TestUtility"> 
     <property name="mailSender" ref="mailSender" /> 
    </bean> 

轉換mailSender這個bean如下。但是如何在java config spring bean中轉換utilityObject。我是新來的。

@Bean(name="mailSender",autowire=Autowire.BY_NAME) 
    public JavaMailSenderImpl mailConfiguration(){ 
     JavaMailSenderImpl mail = new JavaMailSenderImpl(); 
     mail.setHost("test"); 
     mail.setPort(111); 
     mail.setUsername("[email protected]"); 
     mail.setPassword("test123"); 

     Properties javaMailProperties = new Properties(); 
     javaMailProperties.put("mail.smtp.auth", "true"); 
     javaMailProperties.put("mail.smtp.starttls.enable", "true"); 

     javaMailProperties.setProperty("mail.smtp.auth", "true"); 
     javaMailProperties.setProperty("mail.smtp.starttls.enable", "true"); 

     mail.setJavaMailProperties(javaMailProperties); 
     return mail; 
    } 

我如何定義如下豆:

<bean id="utilityObject" class="com.ezone.utility.TestUtility"> 
    <property name="mailSender" ref="mailSender" /> 
</bean> 

上面的bean有mailSender參考。

回答

0

JavaMailSenderImpl

使用@configuration參見:http://www.tutorialspoint.com/spring/spring_java_based_configuration.htm


編輯

@Bean 
public TestUtility getUtilityObject() { 
    return new TestUtility(mailConfiguration()); 
} 
+0

thanx您答。我也需要在UtilityObject中引用。我該怎麼做? –

+0

我無法得到這部分'我還需要在UtilityObject中引用.'請在問題中添加更多詳細信息 –

+0

@ShiladittyaChakraborty - 請參閱編輯部分 –

1

您可以把參數上@Bean方法,該方法將得到注:

@Bean 
public TestUtility utilityObject(JavaMailSender mailConfiguration) { 
    return new TestUtility(mailConfiguration); 
} 

或呼叫從一個@Bean方法在@Configuration到另一個; Spring將代理他們,並確保單行爲得到應用:

@Bean 
public TestUtility utilityObject() { 
    return new TestUtility(mailConfiguration()); 
} 

我第一個想到的是魔少一點,但是這兩種方式應該工作。

相關問題