SpringBoot中使用ContextLoader.getCurrentWebApplicationContext() 获取WebApplicationContext为null的问题

获取不到的原因:springboot无论以main方法还是spring-boot:run的方式执行都不会跑SpringBootServletInitializer中的onStartup导致ContextLoaderListener没有执行。

考虑到以往的经验ContextLoaderListener一般是配置在web.xml中的对web容器有依赖,所以我直接把工程打成war放到tomcat跑果然可以调用SpringBootServletInitializer中的onStartup,

但是还是不能获取ContextLoader.getCurrentWebApplicationContext(),原因是在onStartup初始化ContextLoader时使用的是构造函数,没有用ContextLoader.initWebApplicationContext方式,

所以获取不到,要用这种方式得重写SpringBootServletInitializer中的onStartup。

具体参考:https://www.cnblogs.com/zhuzhen/p/8582504.html

posted on 2021-06-08 18:02  乡野少年  阅读(3017)  评论(0编辑  收藏  举报