Spring Boot中文參考指南(2.1.6)37、驗證

下一篇[未完待續]

Spring Boot中文參考指南(2.1.6)37、驗證/38、發送電子郵件

<code>GitHub:https://github.com/jijicai/Spring/tree/master/spring-boot/<code>
<code>英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-email.html/<code>
<code>GitHub:https://github.com/jijicai/Spring/tree/master/spring-boot/<code>

37、驗證

只要類路徑上有 JSR-303 的實現 (如 Hibernate 驗證器),Bean Validation 1.1 支持的方法驗證功能就會自動啟用。這使得 bean 方法可以用 javax.validation 約束來註解它們的參數和/或它們的返回值。帶有此類帶註解的方法的目標類需要在類型級別上使用 @Validated 註解進行註解,以便對其方法進行內聯約束註解的搜索。

例如,以下服務觸發第一個參數的驗證,確保其大小在 8 到 10 之間:

Spring Boot中文參考指南(2.1.6)37、驗證/38、發送電子郵件

<code>@Service
@Validated
public class MyBean {

public Archive findByCodeAndAuthor(@Size(min = 8, max = 10) String code,
Author author) {
...
}

}/<code>

38、發送電子郵件

Spring Framework 通過使用 JavaMailSender 接口為發送電子郵件提供了一個簡單的抽象,Spring Boot 為它提供了自動配置以及一個 starter 模塊。

提示:請參閱參考文檔,瞭解如何使用 JavaMailSender 的詳細說明。(https://docs.spring.io/spring/docs/5.1.8.RELEASE/spring-framework-reference/integration.html#mail )

如果 spring.mail.host 和相關庫 (由 spring-boot-starter-mail 定義) 可用,則會創建默認的 JavaMailSender(如果不存在)。可以通過 spring.mail 命名空間中的配置項進一步自定義發件人。有關更多詳細信息,請參見 MailProperties。(https://github.com/spring-projects/spring-boot/tree/v2.1.6.RELEASE/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mail/MailProperties.java )

特別是,某些默認超時值是無限的,你可能希望更改它以避免線程被無響應的郵件服務器阻塞,如下面示例所示:

Spring Boot中文參考指南(2.1.6)37、驗證/38、發送電子郵件

<code>spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000/<code>

也可以使用 JNDI 的現有 Session 配置 JavaMailSender:

<code>spring.mail.jndi-name=mail/Session/<code>

當設置 jndi-name 時,它優先於所有其他與 Session 相關的設置。

下一篇[未完待續]


分享到:


相關文章: