2017-05-05 9 views
0

I는 다음과 같이 시작하는 클래스가자바 클래스의 인스턴스를 어떻게 자동으로 작성합니까? ".. autowire하기 수 없습니다 발견 '세션'유형의 없음 콩"</p> <pre><code>import javax.mail.Session; //... more imports @Component("eMailUtility") public class MailUtility { @Autowired Session mailSession; //... } </code></pre> <p>내 IDE가 나에게 말한다 :

이 메시지는 놀랍지 만 해결 방법을 모르겠습니다. Session은 팩토리 메소드를 가진 최종 클래스이지만 public 생성자는 없습니다. 어딘가에 Session을 쉽게 인스턴스화 할 수 있지만 autowired 인젝션의 대상으로 인식 할 수 있도록하기 위해 내가해야 할 일을 모릅니다. 인터넷에서 발견 한 모든 예제는 내가 작성한 클래스의 인스턴스를 autowire하는 방법을 보여 주며 여기서 도움이되지 않습니다.

(어떤 것보다 광택이 나지 않는 방법에 대한 자세한 설명은 매우 유용 할 것이지만, 나는 찾을 수없는 것 같습니다.) 좋은 링크를 알고 있다면 도움이 될 것입니다.)

답변

1

@Configuration으로 주석 처리 된 클래스에서 Session 개체를 반환하는 메서드를 만들고이 메서드에 @Bean이라는 주석을 추가해야합니다. 이 같은 사건의 뭔가 :

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

당신은 또한 @Component와 주석, 또는 자체가 @Component 주석이 다른 주석 수 있습니다 자신의 클래스 중 하나 인 경우. 그러면 Spring은이 주석을 사용하여 클래스를 찾고 자동으로 Bean을 작성합니다. Understanding Spring @Autowired usage

:이 답변을 볼 수 @Autowired에 대한 설명은