solon
solon copied to clipboard
希望增加热部署
热部署解决方案:https://github.com/Liubsyy/HotSecondsIDEA
Springboot 是校验过的:
1、添加 private 方法打印点东西,Controller 调用正常
2、添加 Controller 接口,postman 访问正常
3、添加 Service 接口, Service 实现,Controller 调用正常
4、添加 mapper default 方法,ServiceImpl 调用正常
5、添加 mapper 接口方法,添加 xml 实现,ServiceImpl 调用失败
6、修改 xml sql 语句,ServiceImpl 调用正常
尝试测试 Solon
简单尝试
通过测试,编写扩展代码,运行期间增加 Controller 接口能通过 postman 访问.
发现问题
但是会导致 main router 数组不断增加 一整个 Controller 的 API,因为 Solon 内部只是 add,并没有存在性的判断。
阶段性结论
所以,这件事只能官方来做,我提个建议。
附录
通过扩展 HotSecondsIDEA 实现
public class MyHotExtHandler implements IHotExtHandler{
@Override
public void preHandle(ClassLoader classLoader, String hotFilePath, byte[] content) {
System.out.println("IHotExtHandler preHandle");
try {
BeanWrap beanWrap = new BeanWrap(Solon.context(), Class.forName(hotFilePath));
FactoryManager.mvcFactory().createLoader(beanWrap).load(Solon.app());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}