Tomcat 서버 시작시 데몬 메일 서비스 스레드를 시작하고 싶습니다. 그래서 @Async 주석을 사용하는 메소드에 주석을 달았습니다.봄에 서버 시작시 데몬을 시작하는 방법
저는 ApplicationListener 인터페이스를 구현하는 클래스가 있습니다. 이 클래스에서 비동기 메서드를 호출하면 결코 비동기 적으로 시작되지 않고 현재 스레드를 차단합니다. 그리고 스프링 컨트롤러 클래스에서 비동기 메서드를 호출하면 결코 블록화되지 않고 비동기 적으로 시작됩니다.
비동기 메서드가 다른 클래스가 아닌 한 클래스에서 성공적으로 실행되는 이유는 무엇입니까?
내가 뭘 잘못하고 있고 어떻게 서버 시작시 비동기 메서드를 실행할 수 있습니까 ??
미리 감사드립니다.
편집 : 안녕 얘들 아, 내 비동기 메서드를 호출하는 초기화 메소드 접근 방식 @PostConstruct InitializingBean 인터페이스를 사용해 보았지만 결코 실행되지 않았다. 그런 다음, 기본 lazy-init이 true라는 것을 알았습니다. 그래서 InitializingBean에 대해 lazy-init을 false로 만듭니다. 이제는 내 asnyc 메서드를 실행하지만 현재 스레드를 차단하고 이제는 한 가지 문제가 있습니다. 내 서버가 정상적으로 중지되지 않았지만 강제로 서버를 중지해야합니다.
코드를 표시하십시오. –