zoukankan      html  css  js  c++  java
  • 20191105 《Spring5高级编程》笔记-第12章

    第12章 使用Spring远程处理

    12.4 在Spring中使用JMS

    使用面向消息的中间件(通常成为MQ服务器)是另一种支持应用程序间通信的流行方法。消息队列(MQ)服务器的主要优点在于为应用程序集成提供了异步和松耦合的方式。在Java中,JMS是连接到MQ服务器以发送或接收消息的标准。MQ服务器维护应用程序可以连接并发送和接受消息的队列即主题列表。

    • 队列
      队列用于支持点对点消息交换模型。当一名生产者向队列发送消息时,MQ服务器会将消息保留在队列中,并在消费者下次连接时将消息传递给一名消费者(且只能传递给一名消费者)。
    • 主题
      主题用于支持发布-订阅模型。任何数量的客户端都可以订阅主题中的消息。当某条消息到达主题时,MQ服务器会将其发送给订阅了该消息的所有客户端。

    从Spring5开始,不再支持JMS1.1。

    TODO:
    示例使用的是 HornetQ,应该换成更流行的消息队列。
    另外,需要深入学习一种消息队列,以及Spring与消息队列的结合使用,具体学习哪种,可以从Spring Boot的starter里寻找。

    12.5 Spring Boot Artemis启动器

    JmsTemplate bean不仅可以发送消息,还可以接收消息,但这是同步完成的,意味着JmsTemplate会被阻塞。这就是使用显式配置的JmsListenerContainerFactory bean来创建DefaultMessageListenerContainer的原因——能够以最高的连接效率异步的使用消息。

    12.6 在Spring中使用RESTful-WS

    12.6.1 RESTful Web服务介绍

    RESTful-WS中的RESTREpresentational State Transfer的缩写,是一种架构样式。REST定义了一组架构约束,它们共同描述了一个访问资源的统一接口。这个统一接口通过不同的表达形式来识别和操作资源。为了识别资源,应该通过统一资源标识符(URI)访问一条信息。
    image

    12.7 配置Castor XML

    Spring自带的Jackson有支持XML的方法,不知道为什么不使用Jackson?

    12.7.1 实现SingerController

    @ResponseBody注解指示方法的返回值应该直接写入HTTP响应流,而不是与视图匹配。

    使用@RequestBody对入参进行注解,指示Spring自动将HTTP请求体内的内容绑定到入参对象。该转换通过org.springframework.http.converter.HttpMessageConverter接口来完成。

    12.7.2 配置Spring Web应用程序

    Spring Web应用程序遵循Front Controller设计模式,其中所有请求都由单个控制器接收,然后分派给相应的处理程序(控制器类)。中央调度程序是org.springframework.web.servlet.DispatcherServlet的一个实例,由org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer类进行注册,需要对该类进行扩展以替换web.xml配置。

    12.7.4 使用RestTemplate访问RESTful-WS

    可以使用RestTemplate类访问RESTful Web服务。

    TODO 深入学习
    org.springframework.web.client.RestTemplate

    12.7.5 使用Spring Security来保护RESTful-WS

    org.springframework.http.client.HttpComponentsClientHttpRequestFactory是Spring对Apache HttpComponents HttpClient库提供的支持。

    TODO 深入学习
    Spring Security

    12.8 使用Spring Boot开发RESTful-WS

    image

    12.9 在Spring中使用AMQP

    远程处理可以通过使用以高级消息队列协议(AMQP)作为传输协议的远程过程调用(RPC)通信来完成。AMQP是实现面向消息中间件(MOM)的开放标准协议。

    JMS应用程序适用于任何操作系统环境,但仅支持Java平台。AMQP标准可用于开发可轻松同行的多种语言的应用程序。

    与使用JMS相似,AMQP也是用消息代理来交换消息。Spring本身没有在核心框架中提供远程处理功能,而是提供了Spring AMQP项目来处理。

    Spring AMQP项目由两部分组成:spring-amqp是基本抽象,spring-rabbit是RabbitMQ实现。

    虽然配置相似,但JMS和AMQP是两种完全不同的传输协议。

  • 相关阅读:
    Azure 3月新公布(二)
    亲,「广撒网」的营销方式你还没厌倦吗?
    Azure进阶攻略 | 下载还是在浏览器直接打开,MIME说了算!
    5步玩转Power BI Embedded,老司机全程带路解析
    手握不同媒体的数据,接下来该干些什么?
    cmake教程
    翻译Lanlet2
    pugixml 1.9 manual解读(部分)
    U盘无法拔出的解决办法
    Function Pointers in C
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/11798338.html
Copyright © 2011-2022 走看看