我创建了一个简单的JavaMailSender弹簧启动应用程序(只是为了好玩)。这是对GitHub上代码的引用:
https://github.com/carlcorder/mail.sender
我遇到一个问题,即使在Email类中,即使我使用@Value进行注释,“ from”属性也为null(除此之外,一切正常。)该类如下:
package com.mail.sender.domain;
import lombok.NonNull;
import org.springframework.beans.factory.annotation.Value;
@lombok.Data
@lombok.AllArgsConstructor
@lombok.NoArgsConstructor
@lombok.Builder
public class Email {
@NonNull
private String to;
@NonNull
//@Value("{spring.mail.username}") --> this is always null
private String from;
@NonNull
private String subject;
private String body;
}
我已经阅读了这些帖子,并且了解到该问题最有可能与之相关。
Spring Framework中applicationContext.xml和spring-servlet.xml之间的区别
还有这个:
@Controller类中的Spring @Value注释不评估属性文件中的值
但是,我仍然无法正常工作。任何帮助将不胜感激。
正如评论中提到的Deinum一样,对于非春季托管类,将不会替换值。
在您的情况下,由于要获得from
配置,因此可以将字段移到MailSenderService
类。
在那里,您需要使用@Value
注释声明字段。同样,如@ndrone所提到的,属性名称应以$为前缀。
在MailSenderService中添加以下内容,并将其从Email类中删除
@Value("${spring.mail.username}")
private String from;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句