【Java】怎么在项目启动时添加部分数据到Redis

(多模块的项目,maven依赖最后打成了多个jar和一个war,外部tomcat运行)

回答

没怎么听懂, 但是如果想启动的时候就处理一些就处理一下逻辑Boot项目可以实现 CommandLineRunner 接口进行处理。
其他着监听应用上下文实现ApplicationListener

项目启动时添加一个列表的数据到redis缓存

为了避免redis连接还没有初始化完,可以试试 @PostConstruct

你这种情况是有点特殊,springboot一般来说用想在bean factory初始化完后做一些其他事,确实采用的CommandLineRunner或者ApplicationRunner,但是你是war包部署,就不行了,看来它们是只能用在boot上,我自己也试过,确实不行

但是你在其他地方评论提到使用过ApplicationListener,但是还是不行,这个就很奇怪了,不知道你的Listener监听的是什么事件?我自己试了去监听ContextRefreshedEvent,毕竟这你是要所有bean都加载完,当然对应就是bean factory refreshed之后了,它是可以触发的
【Java】怎么在项目启动时添加部分数据到Redis

当然我这里用的@EventListener,你用ApplicationListener接口也是ok的,毕竟它们都是Spring ApplicationEventlistner的不同实现方式罢了

如果你用ApplicationListener还是不行,那就需要考虑一下,你这个listner是否被注入到beanfactory了,比如检查一下扫描路径之类的,我猜是这个原因

以上是 【Java】怎么在项目启动时添加部分数据到Redis 的全部内容, 来源链接: utcz.com/a/90053.html

回到顶部