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

新手上路,请多包涵

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

阅读 4.4k
4 个回答

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

新手上路,请多包涵

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

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

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

但是你在其他地方评论提到使用过ApplicationListener,但是还是不行,这个就很奇怪了,不知道你的Listener监听的是什么事件?我自己试了去监听ContextRefreshedEvent,毕竟这你是要所有bean都加载完,当然对应就是bean factory refreshed之后了,它是可以触发的
image.png

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题