Spring bootで作ったWEBアプリケーションを起動しようとすると、下記のログが表示されます。
SendMailUtilsクラスのSimpleMailMessage型のフィールドに「@Autowired」をつけているからだと思います。
しかし、MailSender は大丈夫なのにSimpleSimpleMailMessageはなぜ駄目なのか気になりました。
なぜ駄目なのでしょうか?
↓でもSimpleSimpleMailMessageはオートワイヤリングしていません。
https://www.early2home.com/blog/programming/spring/post-972.html
log
12019-12-08 16:35:00.010 INFO 2016 --- [ main] ConditionEvaluationReportLoggingListener : 2 3Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 42019-12-08 16:35:00.167 ERROR 2016 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : 5 6*************************** 7APPLICATION FAILED TO START 8*************************** 9 10Description: 11 12Field msg in com.koikeya.project1.app.util.SendMailUtils required a bean of type 'org.springframework.mail.SimpleMailMessage' that could not be found. 13 14The injection point has the following annotations: 15 - @org.springframework.beans.factory.annotation.Autowired(required=true) 16 17 18Action: 19 20Consider defining a bean of type 'org.springframework.mail.SimpleMailMessage' in your configuration. 21
Java
1package com.koikeya.project1.app.util; 2 3import javax.annotation.PostConstruct; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.mail.MailSender; 7import org.springframework.mail.SimpleMailMessage; 8import org.springframework.stereotype.Component; 9 10import com.koikeya.project1.domain.model.MailForm; 11 12/** 13 * メール送信ユーティリティクラス 14 * 15 * @author user 16 * 17 */ 18@Component 19public class SendMailUtils { 20 21 /** 22 * 静的MailSender 23 */ 24 static MailSender staticMailSender; 25 26 /** 27 * 静的SimpleMailMessage 28 */ 29 static SimpleMailMessage staticMsg; 30 31 /** 32 * MailSender 33 */ 34 @Autowired(required = true) 35 private MailSender mailSender; 36 37 /** 38 * SimpleMailMessage 39 */ 40 @Autowired 41 private SimpleMailMessage msg; 42 43 44 /** 45 * 静的MailSenderを初期化する 46 */ 47 @PostConstruct 48 private void initialize() { 49 SendMailUtils.staticMailSender = mailSender; 50 SendMailUtils.staticMsg = msg; 51 } 52 53 /** 54 * コンストラクタ 55 */ 56 protected SendMailUtils() { 57 super(); 58 } 59 60 /** 61 * メールを送信する 62 * 63 * @param mailForm メールフォームオブジェクト 64 */ 65 public static void send(MailForm mailForm) { 66 SimpleMailMessage msg = new SimpleMailMessage(); 67 msg.setFrom("〇〇〇〇@gmail.com"); 68 msg.setTo(mailForm.getMail()); // 管理者アドレス 69 msg.setSubject("project1 アカウント確認のお願い"); 70 msg.setText(makeContent(mailForm)); 71 staticMailSender.send(msg); 72 } 73 74 /** 75 * コンテンツを編集する 76 * 77 * @param mailForm メールフォーム 78 * @return メールフォームの内容 79 */ 80 private static String makeContent(MailForm mailForm){ 81 return mailForm.getName() + "さん\n\n" + 82 "以下のリンクにアクセスしてアカウントを認証してください" + "\n" + 83 "問い合わせ内容: " + mailForm.getContent(); 84 } 85} 86
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/08 09:55