2017-05-05 78 views
0

我有開始像這樣一類:「無法自動裝配的‘會話’類型沒有豆中。」如何自動裝配java類的實例?

import javax.mail.Session; 
//... more imports 

@Component("eMailUtility") 
public class MailUtility { 

    @Autowired 
    Session mailSession; 
    //... 
} 

我的IDE告訴我

此消息並不讓我感到意外,但我不知道如何解決它。 Session是帶有工廠方法的最終類,但沒有公共構造函數。我可以很容易地在某處實例化一個會話,但我不知道我需要做什麼才能將其識別爲自動佈線注入的目標。我在互聯網上找到的所有例子都展示瞭如何自動裝載我寫的一個類的實例,這對我並沒有幫助。如果你知道一個好的鏈接,這將是有幫助的。但是,如果你知道一個好的鏈接,那將是有幫助的。 )

回答

1

您必須在類別中創建一個方法,該類使用@Configuration進行註釋,該方法返回Session對象並使用@Bean對該方法進行註釋。你的情況是這樣的:

@Bean 
public Session session() { 
    return <instance>; 
} 

如果這是你自己的類之一,你也可以用@Component註釋,或那些本身@Component註釋其他註釋。然後Spring會找到帶有這個註解的類並自動爲你創建bean。

有關@Autowired的說明,您可以查看此答案:Understanding Spring @Autowired usage