(多模块的项目,maven依赖最后打成了多个jar和一个war,外部tomcat运行)
你这种情况是有点特殊,springboot
一般来说用想在bean factory
初始化完后做一些其他事,确实采用的CommandLineRunner
或者ApplicationRunner
,但是你是war
包部署,就不行了,看来它们是只能用在boot
上,我自己也试过,确实不行
但是你在其他地方评论提到使用过ApplicationListener
,但是还是不行,这个就很奇怪了,不知道你的Listener
监听的是什么事件?我自己试了去监听ContextRefreshedEvent
,毕竟这你是要所有bean都加载完,当然对应就是bean factory refreshed
之后了,它是可以触发的
当然我这里用的@EventListener
,你用ApplicationListener
接口也是ok的,毕竟它们都是Spring ApplicationEvent
中listner
的不同实现方式罢了
如果你用ApplicationListener
还是不行,那就需要考虑一下,你这个listner
是否被注入到beanfactory
了,比如检查一下扫描路径之类的,我猜是这个原因
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
没怎么听懂, 但是如果想启动的时候就处理一些就处理一下逻辑Boot项目可以实现
CommandLineRunner
接口进行处理。其他着监听应用上下文实现
ApplicationListener