2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
MailTrainAPI
應(yīng)該是一個(gè) Spring bean,又名組件,由于 自動(dòng)掃描@Component
,然后注入@Value("${mailtrain.url}")
.
但是,當(dāng)您調(diào)用 時(shí),您自己創(chuàng)建了一個(gè)單獨(dú)的類實(shí)例new MailTrainAPI()
。不要那樣做。
您使用該對(duì)象的代碼必須通過注入字段來接收它,例如
@Autowired private MailTrainAPI mt;

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
我能夠修復(fù)它
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");
}
但我認(rèn)為會(huì)有一種更簡(jiǎn)單、更好的方法,而且絨毛更少。
添加回答
舉報(bào)