35. 驗證
只要類路徑上有JSR-303實現(比如Hibernate驗證器),Bean validation 1.1支援的方法驗證特性就會自動啟用,這就讓bean方法在引數和/或返回值上使用javax.validation
約束進行註解,使用這種帶註解的方法的目標類需要在型別級別上使用@Validated
註解進行註解,以便搜尋它們的方法以找到內聯約束註解。
例如,以下服務觸發第一個引數的驗證,確保其大小在8到10之間:
@Service
@Validated
public class MyBean {
public Archive findByCodeAndAuthor(@Size(min = 8, max = 10) String code,
Author author) {
...
}
}
36. 傳送電子郵件
Spring框架為使用JavaMailSender
介面傳送電子郵件提供了一個簡單的抽象,Spring Boot為它提供了自動配置以及啟動模組。
有關如何使用
JavaMailSender
的詳細說明,請參閱參考文件。
如果spring.mail.host
和相關庫(如spring-boot-starter-mail
所定義的那樣)都是可用的,如果不存在就會建立一個預設的JavaMailSender
,傳送方可以通過來自spring.mail名稱空間的配置項進一步定製,有關詳細資訊,請參閱MailProperties。
特別是,某些預設超時值是無限的,你可能希望更改該值,以避免執行緒被無響應的郵件伺服器阻塞,如下面的示例所示:
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000
還可以使用JNDI中的現有Session
配置JavaMailSender
。
spring.mail.jndi-name=mail/Session
在設定jndi-name
時,它優先於所有其他會話相關的設定。