- 引子
web项目有外部容器实现热部署,例如tomcat
<Context debug="0" docBase="D:\demo1\web" path="/demo1" privileged="true" reloadable="true"/>
所以我就设想,如果单纯java项目,如何实现同等功能。
- 灵感
某天,一小伙伴问我,怎么实现对于classpath下配置文件的查询??这是考我啊,脑筋一转,关键点还是查找到classpath。
可怜我基础不好,一百度,java已经提供环境属性的查询
Properties prop = System.getProperties();
String key = "java.class.path";
String classpath = prop.getProperty(key);
- 思路
既然能查到配置文件,那只要对该文件进行md5摘要,按一定时间进行轮询。如果md5码改变了就重新加载,也就实现了热部署的目的了。
以此类推,如果是class文件有更新,理论上也可以用classLoader重新加载的,个人愚见~