广播您自己的活动

总线可以承载任何类型的事件。默认传输方式为 JSON,并且反序列化程序需要提前知道将使用哪些类型。 要注册新类型,必须将其放在 的子包中。RemoteApplicationEventorg.springframework.cloud.bus.eventSpring中文文档

要自定义事件名称,您可以在自定义类上使用或依赖 默认策略,即使用类的简单名称。@JsonTypeNameSpring中文文档

生产者和使用者都需要访问类定义。

在自定义包中注册事件

如果不能或不想对自定义事件使用 的子包,则必须使用注释指定要扫描哪些包以查找类型类型的事件。包 使用 include 子包指定。org.springframework.cloud.bus.eventRemoteApplicationEvent@RemoteApplicationEventScan@RemoteApplicationEventScanSpring中文文档

例如,考虑以下自定义事件,称为:MyEventSpring中文文档

public class MyEvent extends RemoteApplicationEvent {
    ...
}

您可以通过以下方式向解串器注册该事件:Spring中文文档

@Configuration
@RemoteApplicationEventScan
public class BusConfiguration {
    ...
}

在不指定值的情况下,将注册使用该类的包。在此示例中,使用 的包 注册。@RemoteApplicationEventScancom.acmeBusConfigurationSpring中文文档

您还可以使用 或 上的属性显式指定要扫描的软件包,如 以下示例:valuebasePackagesbasePackageClasses@RemoteApplicationEventScanSpring中文文档

@Configuration
//@RemoteApplicationEventScan({"com.acme", "foo.bar"})
//@RemoteApplicationEventScan(basePackages = {"com.acme", "foo.bar", "fizz.buzz"})
@RemoteApplicationEventScan(basePackageClasses = BusConfiguration.class)
public class BusConfiguration {
    ...
}

前面的所有示例都是等效的,因为包是通过在 上显式指定包来注册的。@RemoteApplicationEventScancom.acme@RemoteApplicationEventScanSpring中文文档

您可以指定要扫描的多个基本包。
生产者和使用者都需要访问类定义。
您可以指定要扫描的多个基本包。