Luk*_*uke 18 java spring dependency-injection event-handling
我有几个服务正在侦听Spring事件以更改我的基础数据模型.这些都通过实施来完成ApplicationListener<Foo>.一旦所有Foo侦听器修改了底层数据模型,我的用户界面就需要刷新以反映更改(想想fireTableDataChanged()).
有没有办法确保特定的听众Foo始终是最后的?或者有没有办法在所有其他听众完成后调用函数?我正在使用基于注释的布线和Java配置,如果这很重要的话.
Tom*_*icz 32
您实施的所有bean ApplicationListener也应该实现Ordered并提供合理的订单价值.值越低,您的侦听器就越快被调用:
class FirstListener implements ApplicationListener<Foo>, Ordered {
public int getOrder() {
return 10;
}
//...
}
class SecondListener implements ApplicationListener<Foo>, Ordered {
public int getOrder() {
return 20;
}
//...
}
class LastListener implements ApplicationListener<Foo>, Ordered {
public int getOrder() {
return LOWEST_PRECEDENCE;
}
//...
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以实现PriorityOrdered以确保始终首先调用其中一个侦听器.
| 归档时间: |
|
| 查看次数: |
4745 次 |
| 最近记录: |