输入输出
大多数应用程序在某个时刻都需要处理输入和输出问题。当你需要 IO 功能时,Spring Boot 提供了与一系列技术集成的实用工具来帮助你。本节涵盖了标准 IO 功能,如缓存和验证,以及更高级的主题,如调度和分布式事务。我们还将介绍如何调用远程 REST 或 SOAP 服务以及发送电子邮件。
章节摘要
📄️ 缓存
Spring 框架提供了对应用程序透明添加缓存的支持。其核心在于将缓存应用于方法,从而根据缓存中的可用信息减少执行次数。缓存逻辑是透明应用的,不会对调用方产生任何干扰。只要通过使用 @EnableCaching 注解启用了缓存支持,Spring Boot 就会自动配置缓存基础设施。
📄️ Hazelcast Hazelcast 官方网站。
如果 Hazelcast 位于类路径上并且找到了合适的配置,Spring Boot 会自动配置一个 HazelcastInstance,你可以在应用程序中注入它。
📄️ Quartz 调度器
Spring Boot 为使用 Quartz 调度器提供了多种便利,包括 spring-boot-starter-quartz 启动器。如果 Quartz 可用,将会自动配置一个 Scheduler(通过 SchedulerFactoryBean 抽象)。
📄️ 发送电子邮件
Spring Framework 通过使用 JavaMailSender 接口为发送电子邮件提供了抽象层,而 Spring Boot 则为其提供了自动配置以及一个 starter 模块。
📄️ 验证
只要类路径中包含 JSR-303 实现(例如 Hibernate Validator),Bean Validation 1.1 支持的方法验证功能就会自动启用。这使得可以在 Bean 方法的参数和/或返回值上使用 jakarta.validation 约束注解进行标注。带有此类注解方法的目标类需要在类型级别上使用 @Validated 注解进行标注,以便搜索其方法中的内联约束注解。
📄️ 调用 REST 服务
Spring Boot 提供了多种便捷的方式来调用远程 REST 服务。如果你正在开发一个非阻塞的响应式应用,并且你使用的是 Spring WebFlux,那么你可以使用 WebClient。如果你更倾向于使用阻塞式 API,那么你可以使用 RestClient 或 RestTemplate。
📄️ Web 服务
Spring Boot 提供了 Web 服务的自动配置,因此你只需定义你的 @Endpoint bean 即可。
📄️ 使用 JTA 实现分布式事务
Spring Boot 支持通过从 JNDI 中检索的事务管理器,在多个 XA 资源之间进行分布式 JTA 事务处理。