회원가입 완료하면 인증메일을 전송합니다.

이메일 전송은 ApplicationEventPublisher로 event 발생시켜 비동기적으로 실행합니다.

 

 

 

contorller

AuthController.java

 

service

AuthService.java

회원가입

 

 

ApplicationEventPublisher 빈을 주입하여 publishEvent() 메서드를 통해 생성된 이벤트 객체를 넣어 줍니다.

회원가입 후 이벤트 발행

 

Event

RegistrationCompleteEvent.java

Event listener

@EventListener 어노테이션을 통해 발생하는 이벤트를 캐치합니다

RegistrationCompleteEventListener.java

메일 본문은 templateEngine 사용하여 html 형식으로 전송합니다.

 

Email

 

 

 

비동기 처리

스프링 이벤트는 기본적으로 동기 방식으로 동작합니다.

이메일 전송은 끝나는 시간이 다소 오래 걸리기 때문에 이벤트를 비동기 처리합니다

config/AsyncConfig.java

@EnableAsync 어노테이션을 통해 비동기를 사용하겠다고 선언

프로세스 갯수만큼 스레드풀 설정

+ Recent posts