java hotswap_HotSwap: java热插拔组件,可用于项目的热更新和热替换,只有对接口编程就可以,实现是可以随意替换的...

#HotSwap

1,需要初始化热部署的线程

如下

new HotswapBuilder().setCheckFileTime(3000L).setPlugFilePath("D:/hhh").isGCToDelteFile(true).startHotswap();

setCheckFileTime是定期扫描文件的时间(毫秒)

setPlugFilePath是设置组件的目录

isGCToDelteFile是是否使用gc来删除目录,这里是显示的调用system.gc()这样有利于删除组件目录,默认是flase,如果项目中使用了弱引用等等,这里应该设置为false

startHotswap是启动线程的地方

2,使用ApplicationContext来获取对象

getNewBeans获取是一个新的对象

getBeans获取的是相同的对象ApplicationContext来维护单例

如下

ApplicationContext.getNewBeans(Hello.class);

3,目录设置

就是组件目录,组件目录下的每一个目录表示一个组件

例如组件目录是/data

目录/data/read/表示read功能组件

目录/data/write/表示write功能组件

每个功能组件下需要配置config.properties文件里面是接口和实现类的映射

例如com.xp.Hello=com.xp.HellobyPerson

参考工程里的config.properties

4,config.properties的属性

支持delete属性,设置这个属性后,整个功能组件目录会被删除

支持增加配置文件内容,不支持动态的减少文件内容

5,使用方式

设定好接口,和实现类

然后根据接口编程,把实现类放入功能组件中去,如果动态替换实现,则把旧的功能组件中配置文件设置为delete=true,然后等删除文件后,加入新的组件目录,设置isGCToDelteFile为true会加速删除目录

可以参考工程中的例子

如果遇到废弃单独的接口的情况,只需要把配置文件中的配置项加:d

例如我单独向停止com.xp.Hello的实现只需要com.xp.Hello=com.xp.HellobyPerson:d即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值