1
Spring JavaMailSenderでセッションを再利用する最良の方法は何ですか?Spring JavaMailSender - セッションを使用する最良の方法
消費者がキューからメッセージを読み取り、メッセージに基づいて電子メールをトリガするシナリオでは、電子メールは順次送信されます。新しいセッションが毎回作成された場合、それはオーバーヘッドではありませんか? JavaMailSenderがシングルトンBeanの場合、常に同じセッションを使用しますか?ここで最善の解決策は何ですか?
JavaMailSenderのBean構成にJNDIセッションのサンプルが設定されているのがわかりました。私たちはJNDIをサポートしていないので、これはオプションではありません。
私は現在、したがって、新しいセッションをJavaMailSenderImplの新しいインスタンスを作成しています。メッセージはキューから読み取られますが、メール送信部分はバネ統合と統合されていません。 JavaMailSenderImplとMimeMessageHelperを使用するスタンドアロンコンポーネントです。アプリケーションのどこからでもメールを送信できるようになっています。それをBeanに変換して使用すると、セッションはどのように機能しますか?任意の時点に送信されるメールは、同じセッションを使用していますか? –
はい、「JavaMailSender」はシングルトンBeanでなければならず、そのセッションは再利用されます。前のセッションが終了すると、新しいセッションのみが取得されます。 Sessionはスレッドセーフなオブジェクトであるため、共有することができます。何も心配する必要はありません! –