Java Spring注释/记录Spring自定义事件的方法
我正在开发一个分为不同服务的大型spring启动应用程序 随着应用程序变得越来越大,我开始看到服务之间存在一些深度耦合,因此我在应用程序的某些部分上使用springevents()实现了一个基本的发布/订阅模型,以减少耦合 每个服务创建和发布自定义事件,其他服务订阅它们想要使用的事件 我想记录每个服务发布和订阅的事件,以帮助提高可读性和调试Java Spring注释/记录Spring自定义事件的方法,java,spring,spring-boot,kotlin,Java,Spring,Spring Boot,Kotlin,我正在开发一个分为不同服务的大型spring启动应用程序 随着应用程序变得越来越大,我开始看到服务之间存在一些深度耦合,因此我在应用程序的某些部分上使用springevents()实现了一个基本的发布/订阅模型,以减少耦合 每个服务创建和发布自定义事件,其他服务订阅它们想要使用的事件 我想记录每个服务发布和订阅的事件,以帮助提高可读性和调试 是否有任何特定的spring注释/方法可以帮助完成此任务?通常我们只使用javadoc来完成此类文档。您可以在服务的方法中这样做: /** * @para
是否有任何特定的spring注释/方法可以帮助完成此任务?通常我们只使用javadoc来完成此类文档。您可以在服务的方法中这样做:
/**
* @param idFilial to be fetched
* @return Filial object in case there is a return in the search, otherwise an Optional.empty ()
* @implNote Search for a specific Filial from an id
* */
Optional <Filial> findById(Long idFilial);
/**
*@param idFilial待取
*@return子对象,以防搜索中有返回,否则为可选的.empty()
*@implNote从id搜索特定子代
* */
可选findById(长idFilial);
我不知道具体的注释,但我通常会使用一个密封类来保存我的事件,这样我就可以确保所有事件都位于一个位置:
密封类MyEvent(源代码:Any,名称:String):ApplicationEvent(源代码){
数据类SomeEvent(val源:Any,val名称:String):MyEvent(源,名称)
// ...
}
然后可以在侦听器上使用注释:
@组件
类SomeListener{
@EventListener(条件=“#event.name eq'hey')
有趣的处理条件(事件:SomeEvent){
//处理事件
}
}
这有助于不可恢复性,因为您只需要查找@EventListener
s
您还可以使用一个事件侦听器来侦听所有事件,然后您可以从收集到的信息中绘制一个图表