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时,它优先于所有其他会话相关的设置。


上一篇:使用WebClient调用REST服务
下一篇:使用JTA分布式事务

博弈
2.5k 声望1.5k 粉丝

态度决定一切