java项目中使用jar并通过反射实例化

项目需求:excel导入时需要对数据校验,校验规则很多而且后期可能会不断增加,使用的校验规则可以导入之前任意勾选,所以对每一个校验规则都拆分成了独立的类,他们都实现了同一个校验接口。由于校验规则文件可能后期不断增加,如果这些校验文件放到项目路径下,则每次增加校验文件都需要重新打war包部署项目,比较麻烦,为了后期方便维护需要把这些校验文件放到项目外部,先把这些校验文件按照原来的包结构打为jar包,然后在项目中加载,通过反射实例化并调用校验方法进行校验,这样以后新增校验文件,只需要重新打个jar包,把jar放到指定的路径下就可以了,不需要重新部署项目。

原来做法:校验文件都放在com.asdf.qwer.zxcv.checkrule项目文件夹下,可以通过过(ICheckRule)Class.forName("com.asdf.qwer.zxcv.checkrule.CheckRule_1").newInstance()进行实例化并强转为接口类型,然后调用校验方法进行校验。

现在做法:com.asdf.qwer.zxcv.checkrule项目文件夹下所有的校验文件的Class文件按照目录结构打jar包,即删掉所有不需要的Class后把整个com文件夹打jar,找到com文件夹位置并打开命令行窗口,命令jar cvf check.jar com。

关键代码:由于jar包是按照原来的目录结构进行打包的,所以实例化时和Class.forName("com.asdf.qwer.zxcv.checkrule.CheckRule_1").newInstance()是一样的,使用原来的全限定路径名。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Rvbmd4aW5fdG9uZ21lbmc=,size_16,color_FFFFFF,t_70

20210610140445195.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

童心同萌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值