gpt4 book ai didi

java - 我可以确保我的 Spring ApplicationListener 之一最后执行吗?

转载 作者:IT老高 更新时间:2023-10-28 13:51:56 24 4
gpt4 key购买 nike

我有几个服务正在监听 Spring 事件以更改我的底层数据模型。这些都是通过实现 ApplicationListener<Foo> 来实现的。 .一旦所有Foo监听器修改底层数据模型,我的用户界面需要刷新以反射(reflect)更改(想想 fireTableDataChanged() )。

有什么方法可以确保 Foo 的特定监听器总是最后?或者有什么方法可以在所有其他监听器完成后调用函数?我正在使用基于注释的布线和 Java 配置,如果这很重要的话。

最佳答案

所有实现 ApplicationListener 的 bean 也应该实现 Ordered并提供合理的订单值(value)。值越低,你的监听器就会越早被调用:

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;
}
//...
}

此外,您还可以实现 PriorityOrdered以确保始终首先调用您的一个监听器。

关于java - 我可以确保我的 Spring ApplicationListener 之一最后执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com