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
时,它优先于所有其他会话相关的设置。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。