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 相关的设置。

下一篇[未完待续]


分享到:


相關文章: