java - 如何控制 ApplicationListener bean 的调用顺序?

标签 java spring

当我有多个实现ApplicationListener<ContextRefreshedEvent>的bean时接口(interface),如何控制某些 bean 在其他 bean 之前被调用?

在 bean 本身内部处理依赖关系是否更有意义?

最佳答案

AbstractApplicationContext中,我可以看到以下代码片段,它负责注册ApplicationListener实现的bean。

Collection listeners = getBeansOfType(ApplicationListener.class, true, false).values();
for (Iterator it = listeners.iterator(); it.hasNext();) {
  addListener((ApplicationListener) it.next());
}

这里 getBeansOfType 发现返回 Map,因此排序是非确定性。这是 spring-2.0 的工作方式。

关于java - 如何控制 ApplicationListener bean 的调用顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14835079/

相关文章:

java - mybatis中如何修复 "Invalid bound statement (not found)"?

java - 跟踪未检查(或检查?)异常丢失的位置

java - 从其他类访问 Java Swing TextField

java - Eclipse 中建议方法的标记

java - 无法使用 Java Jira Rest Cllient 更新 jira 中问题的单选字段

java - 使用 Root-Logger WARN 显示 Spring-Boot 横幅

java - 包含 Set 的 @ManyToMany Map 的 JPA2 持久性

java - 内存不足且 CPU 消耗低

java - 如何在 Eclipse 中找到方法实现的用法?

java - 我如何确定使用 Spring Security 访问 URL 需要哪些角色?