我創建了一個簡單的JavaMailSender彈簧引導應用程序(僅用於娛樂)。下面是對代碼的引用在GitHub上:Spring @Value屬性在自定義pojo中爲null
https://github.com/carlcorder/mail.sender
我有一個問題,即電子郵件類中,「從」屬性爲空,即使我有@Value註釋它(除此之外,一切都完美)。該類如下:
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;
}
我看過這些帖子和理解這個問題是最可能與。
Difference between applicationContext.xml and spring-servlet.xml in Spring Framework
這:
Spring @Value annotation in @Controller class not evaluating to value inside properties file
不過,我仍然無法得到任何工作。任何幫助將不勝感激。
刪除它忘記了前面的'$''$ {spring.mail.username}' – ndrone
Ofcourse這將是'null'。它不是一個Spring管理的類,而是一個在該範圍之外創建的對象(由Spring MVC類來綁定你的JSON)。這些對象不會被處理,因此'@ Value'不起作用。此外,爲什麼你想要在你的電子郵件類的屬性,它應該屬於你的服務作爲屬性,而不是作爲傳入的對象的一部分。 –
好的,謝謝你的解釋。我認爲該屬性最好屬於電子郵件域對象,因爲Spring MailProperties的用戶名屬性始終是從application.properties傳遞的值。通過使用此值設置Email對象的「from」字段,可以更明確地指出該字段將/應該只有每個值都來自屬性文件。 –