1 年了,没有更新了,今天把 hexo 配置更新了一下。后面想到啥,就写一些

背景

在使用 mapstruct 框架进行数据转换时,可以有 2 种方法进行对象类型转换,第一种是通过将对象注入到 Spring 容器中进行调用,这种方法则强依赖 Spring 容器;第二种声明一个静态的转换器实例字段,这种方法则不依赖 Spring,调用比较方便,如下示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Mapper(componentModel = "cdi")
public interface CarMapper {

CarDto carToCarDto(Car car);
}

@Mapper
public interface GolfPlayerMapper {

GolfPlayerMapper INSTANCE = Mappers.getMapper( GolfPlayerMapper.class );

GolfPlayerDto toDto(GolfPlayer player);

GolfPlayer toPlayer(GolfPlayerDto player);

}
阅读全文 »

概述

当 bean 方法存在重载的情况下,组件可能会出现无法判断选择哪个方法的问题,最终系统会抛出异常,导致系统异常,异常的效果如下:Ambiguous method invocations possible

阅读全文 »

请求/应答

概念

当两个应用通过消息传递进行通信时,通信是单向的。应用可能需要双向的交互。

当应用发送一个消息后,如何才能获得接收者返回的响应?

发送一对请求/应答消息,每个消息都使用自己的通道。

阅读全文 »

概念

即使发送者应用只发送了一次消息,接收者应用也可能会多次接收到相同的消息。

消息接收者如何处理重复的消息?

把接收者设计成幕等接收者(Idempotent Receiver),它能安全地多次接收相同的消息。

阅读全文 »

概念

消息中缺少所需的数据项时,可以使用内容扩充器加以补充。反之,如果要将消息中的多余数据项删除,可以使用内容过滤器。但是,我们可能只是临时删除这些数据项。例如,消息中包含了后续消息流要用到的数据项,但是所有中间处理步骤都不会使用这些数据项。因此,为了避免性能受到影响,也为了降低调试的难度,我们没有必要在中间处理步骤中携带这些额外的数据。

在不损害信息内容的前提条件下,怎样减少跨系统发送的消息的数据量?

把消息中的数据存储在一个持久存储库中,并把声明标签传递给后续组件。这些组件可以使用声明标签重新获得所存储的信息.

阅读全文 »
0%