Spring Boot

Spring BootのWEB画面上に非同期処理によるメール送信処理を追加してみた(ソースコード編)

今回も引き続き、Spring BootのWEB画面上で、ユーザーを追加・変更したタイミングで非同期でメール送信を行う処理のサンプルプログラムについて述べる。ここでは、具体的なサンプルプログラムのソースコードを共有する。

前提条件

下記記事を参照のこと。

Spring BootのWEB画面上に非同期処理によるメール送信処理を追加してみた(完成イメージと前提条件)今回は、Spring BootのWEB画面上で、ユーザーを追加・変更したタイミングで非同期でメール送信を行う処理を追加してみたので、その...

作成したサンプルプログラムの内容

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上図の赤枠は、前提条件に記載したソースコードと比較し、変更になったソースコードを示す。赤枠のソースコードについては今後記載する。

まず、build.gradleに、メール送信ができるような設定を追加する。

また、application.ymlに、メール送信のための設定を追加する。

さらに、非同期処理が行えるよう、Spring Bootを起動するクラスに@EnableAsyncアノテーションを付与する。

また、メール送信を行う処理をサービスクラスの「sendCompleteMail」メソッドに追加する。こちらのメソッドは、非同期処理が行えるよう@Asyncアノテーションを付与し、JavaMailSenderクラスのsendメソッドによってメール送信を行っている。

さらに、コントローラクラスの内容は以下の通りで、sendメソッド内に、メール送信を非同期で行うメソッドの呼び出しを追加している。

要点まとめ

  • 非同期処理を行えるようにするには、Spring Bootの起動クラスに@EnableAsyncアノテーションを付与し、非同期処理を行うメソッドに@Asyncアノテーションを付与すればよい。
  • メール送信は、JavaMailSenderクラスのsendメソッドにより行える。