SpringBoot突报java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS分析 (2)

FreeMarkerConfigurationFactory来源于spring-context-support-4.3.15.RELEASE.jar,这个jar包之前就依赖了,而Configuration来源于freemarker.jar,是common-util.jar传递依赖进来的,所以正好满足了上面的第四步,进而触发了第五步,最终导致SpringBoot启动失败。

汇总解决办法

通过上面的一些分析,我认为这个问题一共有以下几种办法:

如果你的项目中没有用到freemarker的话可以禁用freemarker的自动配置,像初步分析那里提到的;

升级freemarker到高版本;

像我遇到的问题一样,确实不需要freemarker功能,可以将freemarker.jar排除;

总结

虽然是个很小的问题,但是解决过程确实让我收获不少,之前对于SpringBoot只停留在简单使用阶段,通过这次排查过程,也算是了解了SpringBoot自动配置的大体思想,这种可插拔的设计真的是非常巧妙。

 

如果觉得有用,请您点个推荐。 参考资料:

https://www.cnblogs.com/nijunyang/p/12051770.html

https://blog.csdn.net/ZYC88888/article/details/84245127

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdppg.html