最近因业务需求,要实现NodeRed服务后端化,为使各个节点的解析进行插件化(NodeRed各个节点也是插件化,安装插件即可使用) ,后端不得不动态加载解析NodeRed节点json,用一个接口来统一管理。
import cn.hutool.core.util.ClassUtil;
import java.util.*;
/**
* 此类用来解析NodeRed服务器的json串
*/
public class NodeRedParseUtil {
public static void main(String[] args) throws IllegalAccessException, InstantiationException {
//获取所有的模型实现类
Set<Class<?>> classes = ClassUtil.scanPackageBySuper("com.ciih.nodred.plugins", NodeRedModel.class);
Map<String, NodeRedModel> map = new HashMap<>(classes.size());
for (Class<?> aClass : classes) {
//实例化
Object o = aClass.newInstance();
System.out.println();
if (o instanceof NodeRedModel) {
NodeRedModel nodeRedModel = (NodeRedModel) o;
map.put(nodeRedModel.getType(), nodeRedModel);
}
}
}
}
版权声明:本文为wenxingchen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。