如果看过SpringCloud - WebMvcConfigurer & @EnableFeignClients 冲突之 getApplicationContext() 为 null 解决(一)的人,我相信你看完这篇解决方案,会更推荐此篇方案,废话不多说,如下~
分析
其实我们可以仔细想想,之所以引起 getApplicationContext() 为 null 的原因,无非是生命周期受到影响(大胆猜测),所以我们可以通过注入的时候,通过懒加载的方式来解决这个问题。
解决
Ps1:这里通过 Spring 下的 @Lazy 注解来解决这个问题还是有一定道理的,因为拿不到 getApplicationContext,那么我就等你整个项目启动完成后,我用到的时候再去注入,我还怕拿不到吗??!可以遗憾的是,至于为什么会这样,我也不知道!
Ps2:这里还有一点是,其实第一篇讲到用 WebMvcConfigurationSupport 来替代 WebMvcConfigurer 会引发其他问题,比如:addInterceptors 失效等。所以在这里还是更推荐 WebMvcConfigurer。