【发布时间】:2012-06-09 12:52:15
【问题描述】:
我有几个服务正在侦听 Spring 事件以更改我的底层数据模型。这些都通过实现ApplicationListener<Foo> 来工作。一旦所有Foo 监听器修改了底层数据模型,我的用户界面需要刷新以反映更改(想想fireTableDataChanged())。
有没有办法确保Foo 的特定侦听器总是最后一个?或者有什么方法可以在所有其他侦听器完成后调用函数?我正在使用基于注释的布线和 Java 配置,如果这很重要的话。
【问题讨论】:
-
您可以尝试在每个听众中实现
Ordered并适当调整顺序吗? -
@TomaszNurkiewicz 看起来很有希望,我马上试试。
-
@TomaszNurkiewicz 关心你把它放在一个答案中,这样我就可以给你荣誉了吗?效果很好!
-
完成了,很高兴能帮上忙。你能确定我没有弄乱顺序吗(最低的在前,而不是最后)?
-
@TomaszNurkiewicz 是的,最小的整数是最高优先级。 Ordered.LOWEST_PRECEDENCE 是 Integer.MAX_VALUE。
标签: java spring dependency-injection event-handling