我的场景是这样的,我有一个主系统,我希望第三方可以开发插件,第三方插件实现我的接口,开发者看到的代码是
package com.simple.plug;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.simple.mainandplug.HostSystem;
import com.simple.mainandplug.HostSystemWrap;
import java.util.List;
public interface PlugBase {
default <T> List<T> selectList(LambdaQueryWrapper<T> q) {
return null;
}
}主系统在加载这个插件的时候再具体实现selectList方法,希望不要使用太复杂的技术,比如agent、proxy,我希望我写好了具体的代码,存成文件的,直接替换掉。
如果你要做插件系统,可以看看 pf4j: https://pf4j.org/
热加载热更新什么的都给你搞定了