您当前的位置: 首页 >  童心同萌 Java

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

童心同萌 发布时间:2021-06-10 14:00:56 ,浏览量:3

项目需求: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

 

关注
打赏
1688896170
查看更多评论

童心同萌

暂无认证

  • 3浏览

    0关注

    87博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0499s