在 Spring 4.3.9下升级 Velocity 1.7.x to Velocity 2.0.x 出现的问题

1: Spring 的 spring-context-support 报错 java.lang.NoClassDefFoundError: org/apache/velocity/runtime/log/CommonsLogLogChute

等待 Spring 升级支持 Velocity 2.0.x 或自己改 Spring 的源码

velocity整个初始化日志过程:

    1. new RuntimeInstance(),属性Log log = new Log(), 默认创建一个HoldingLogChute()做为LogChute,(该LogChute临时记录日志到内存对象上)
    2. RuntimeInstance.init() 进行velocity系统初始化
    3. 顺序调用initializeProperties(), 读取velocity.properties默认配置,合并自定义的properties。
    4. 顺序调用initializeLog() ,调用LogManager.updateLog(),进行Log初始化
    5. LogManager.createLogChute()会首先读取runtime.log.logsystem配置,看看是否有存在自定义的LogChute实例对象,如果有则直接使用,并返回
    6. 在没有对应的LogChute实例对象配置,继续读取runtime.log.logsystem.class,看看似乎否有logsystem的配置,就是前面类图中的一对LogChute,LogSystem的实现类。
  1. 按照顺序,逐一加载LogChute实现类,如果class装载成功,则进行初始化,并返回
    1. LogManager,针对createLogChute,将系统初始时HoldingLogChute记录的内容,输出到新的LogChute上,最后完成了log的初始化

2:更改 Velocity.properties

复制代码
runtime.conversion.handler = none
space.gobbling = bc
相关推荐
架构师沉默18 分钟前
AI 让程序员更轻松了吗?
java·后端·架构
子兮曰25 分钟前
AI写代码坑了90%程序员!这5个致命bug,上线就炸(附避坑清单)
前端·javascript·后端
BUG胡汉三33 分钟前
自建在线文档编辑服务:基于 Collabora CODE + Spring Boot + Vue 3 的完整实现
vue.js·spring boot·后端·在线编辑
我还不赖1 小时前
什么是MCP?什么是Skill?它们又有什么区别和联系?
后端
像颗糖1 小时前
Docker 与 Docker Compose 通用实战指南(从安装到区别)
后端
MrSYJ1 小时前
有没有人懂socketChannel中的write,read方法啊,给我讲讲
java·程序员·netty
Memory_荒年1 小时前
Spring Security + OAuth2 + JWT:三剑客合璧,打造“无懈可击”的微服务安全防线
java·后端·spring
杰克尼1 小时前
知识点总结--02(java基础部分)
java·开发语言·jvm
Loadings2 小时前
聊聊 AI Coding 的最新范式:Harness Engineering:我们这群程序员,又要继续学了?
前端·后端
ssshooter2 小时前
哈希是怎么被破解的?
前端·后端