修改Apache Velocity源码并重新打包velocity1.7.jar已解决动态加载自定义函数的问题(一)

本文介绍如何修改Apache Velocity源码,使其能动态加载自定义函数类,从而避免每次修改软件以适应不同需求。通过动态加载jar中的类,实现了软件与自定义函数项目的解耦,详细步骤包括分析Velocity加载类的机制及如何实现动态加载。
摘要由CSDN通过智能技术生成

修改Apache Velocity源码并重新打包velocity1.7.jar已解决动态加载自定义函数的问题(一)

velocity是Apache开源的模板引擎,非常的灵活好用,且支持自定义的函数编写,具体的就不细说了,大家可以百度学习。

今天遇到一个情况,那就是我已经写好的工具做成了软件,如文档生成等工具,使用的模板引擎就是velocity,自定义函数也内置了一些,但是由于每次需要的函数都不同,每次都需要拓展自定义函数,导致每次都要重新打包软件,于是想到了java插件化开发,即单独使用接口写一个自定义函数项目然后打包成jar,让工具添加加载这个插件即可实现功能,且不需要每次修改工具,而只需要修改自定义函数这个项目,之前遇到的问题解决方式如下:https://blog.csdn.net/rico_zhou/article/details/103817403

现在遇到的问题是不仅软件需要动态的使用类加载器去加载自定义函数这个项目打包的jar,加载完成后,由于velocity也是通过类名去加载自定义函数类,这就好比velocity加载了一个插件,而这个插件又是另一个程序(软件)加载进来的,导致velocity无法获取。

听起来有些绕,举个例子:以下代码是velocity初始化的时候传递已经继承了Directive类的自定义函数类名

这个是自定义函数,继承Directive

	//实例化模板引擎需要添加配置此实现类,每个实现类需要加入变量CustomFunct
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值