|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-bus 4.1.3! |
自定义事件
广播您自己的事件
Bus 可以携带任何类型的事件RemoteApplicationEvent.默认传输方式为
JSON,反序列化器需要提前知道将使用哪些类型。
要注册新类型,必须将其放入org.springframework.cloud.bus.event.
要自定义事件名称,您可以使用@JsonTypeName在您的自定义类上或依赖
默认策略,即使用类的简单名称。
| 生产者和使用者都需要访问类定义。 |
在自定义包中注册事件
如果您不能或不想使用org.springframework.cloud.bus.event对于自定义事件,您必须指定要扫描哪些包以查找类型为RemoteApplicationEvent通过使用@RemoteApplicationEventScan注解。包
指定@RemoteApplicationEventScan包括子包。
例如,请考虑以下名为MyEvent:
public class MyEvent extends RemoteApplicationEvent {
...
}
您可以通过以下方式向 deserializer 注册该事件:
@Configuration
@RemoteApplicationEventScan
public class BusConfiguration {
...
}
在不指定值的情况下,其中@RemoteApplicationEventScan是 used is registered。在此示例中,com.acme使用BusConfiguration.
您还可以使用value,basePackages或basePackageClasses属性@RemoteApplicationEventScan,如
以下示例:
@Configuration
//@RemoteApplicationEventScan({"com.acme", "foo.bar"})
//@RemoteApplicationEventScan(basePackages = {"com.acme", "foo.bar", "fizz.buzz"})
@RemoteApplicationEventScan(basePackageClasses = BusConfiguration.class)
public class BusConfiguration {
...
}
前面所有的示例@RemoteApplicationEventScan是等效的,因为com.acmepackage 是通过显式指定@RemoteApplicationEventScan.
| 您可以指定要扫描的多个基础包。 |