2 回答
TA贡献1775条经验 获得超8个赞
MailTrainAPI
应该是一个 Spring bean,又名组件,由于 自动扫描@Component
,然后注入@Value("${mailtrain.url}")
.
但是,当您调用 时,您自己创建了一个单独的类实例new MailTrainAPI()
。不要那样做。
您使用该对象的代码必须通过注入字段来接收它,例如
@Autowired private MailTrainAPI mt;
TA贡献1776条经验 获得超12个赞
我能够修复它
public void sendMail(MultiValueMap<String, String> map) {
try {
setAPI();
} catch (IOException e) {
Logger.error(this.getClass(), "sendMail()", "Cannot send mail. Cannot load mailtrain.url property: " + e.getMessage());
return;
}
if (API == null) {
Logger.error(this.getClass(), "sendMail()", "Cannot send mail. Cannot load mailtrain.url property.");
return;
}
System.out.println("API = "+API);
...
private void setAPI() throws IOException {
InputStream is = this.getClass().getResourceAsStream("/application.properties");
Properties p = new Properties();
p.load(is);
API = p.getProperty("mailtrain.url");
}
但我认为会有一种更简单、更好的方法,而且绒毛更少。
添加回答
举报