SpringCloud 在自定义程序包中注册事件
2023-11-30 15:11 更新
如果您不能或不想将org.springframework.cloud.bus.event
的子包用于自定义事件,则必须使用@RemoteApplicationEventScan
批注指定要扫描哪些包来扫描类型为RemoteApplicationEvent
的事件。用@RemoteApplicationEventScan
指定的软件包包括子软件包。
例如,考虑以下自定义事件,称为MyEvent
:
package com.acme; public class MyEvent extends RemoteApplicationEvent { ... }
您可以通过以下方式在反序列化器中注册该事件:
package com.acme; @Configuration @RemoteApplicationEventScan public class BusConfiguration { ... }
不指定值,将注册使用@RemoteApplicationEventScan
的类的包。在本示例中,使用包BusConfiguration
注册了com.acme
。
您还可以通过使用@RemoteApplicationEventScan
上的value
,basePackages
或basePackageClasses
属性来明确指定要扫描的软件包,如以下示例所示:
package com.acme; @Configuration //@RemoteApplicationEventScan({"com.acme", "foo.bar"}) //@RemoteApplicationEventScan(basePackages = {"com.acme", "foo.bar", "fizz.buzz"}) @RemoteApplicationEventScan(basePackageClasses = BusConfiguration.class) public class BusConfiguration { ... }
@RemoteApplicationEventScan
的所有上述示例都是等效的,因为com.acme
软件包是通过在@RemoteApplicationEventScan
上显式指定软件包来注册的。
您可以指定要扫描的多个基本软件包。
以上内容是否对您有帮助:
更多建议: