gpt4 book ai didi

java - ContextRefreshedEvent 在 AnnotationConfigApplicationContext 加载时未触发

转载 作者:行者123 更新时间:2023-12-01 11:15:49 25 4
gpt4 key购买 nike

我创建了 Spring 应用程序,并且正在独立的 Java 应用程序中加载应用程序上下文。我的代码如下

public class Application {
public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Config.class);
}
}

我想在应用程序启动之前复制内存数据库中的一些数据。如果我将代码放在 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Config.class); 之后,它会在上下文初始化后开始复制数据。但应用程序也会在我将数据复制到内存数据库中之前开始处理订单。我想在应用程序启动之前和所有 bean 初始化(上下文加载)之后复制数据。

我尝试过如下

public class AppPostLoader implements ApplicationListener<ContextRefreshedEvent> {

public void onApplicationEvent(ContextRefreshedEvent event) {
RedisTemplate<String, String> redisTemplate = (RedisTemplate) event.getApplicationContext().getBean("redisTemplate");
//Coping data
}
}

但它没有调用 onApplicationEvent 方法。

如何在应用程序启动之前和上下文加载之后调用它。

最佳答案

在监听器类上添加@Component

关于java - ContextRefreshedEvent 在 AnnotationConfigApplicationContext 加载时未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832774/

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