没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
java动态加载插件化编程详解动态加载插件化编程详解
主要介绍了java动态加载插件化编程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
的参考学习价值,需要的朋友可以参考下
前言前言
对于java程序员来说,插件化是一件很酷的功能,小二有幸在工作中实现了此功能。
背景:背景:
需要将mysql的数据通过canal同步至kafka/mysql/hdfs等
实现实现
/**
* Created by shengjk1 on 2017/12/11
*/
public class PluginManager {
private final static Logger logger = LoggerFactory.getLogger(SendMessageFactory.class);
private URLClassLoader urlClassLoader;
public PluginManager(List<Plugin> plugins) throws MalformedURLException {
init(plugins);
}
//将所有插件动态加载至JVM中
private void init(List<Plugin> plugins) throws MalformedURLException {
int size = plugins.size();
URL[] urls = new URL[size];
for (int i = 0; i < size; i++) {
Plugin plugin = plugins.get(i);
String filePath = plugin.getJar();
urls[i] = new URL("file:" + filePath);
}
urlClassLoader = new URLClassLoader(urls);
}
public PluginService getInstance(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
// 插件实例化对象,得到每一个插件具体的对象
Class<?> clazz = urlClassLoader.loadClass(className);
Object instance = clazz.newInstance();
return (PluginService) instance;
}
}
然后就可以进行插件的调用了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
资源评论
weixin_38640794
- 粉丝: 4
- 资源: 942
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OpenCv 使用fffffffff
- 正点原子开拓者FPGA多人表决器代码项目
- EOP-Last5Years.txt
- windows 32位、64位系统常见缺少的库
- 毕业设计基于springboot+vue实现的求职招聘类型网站源码+数据库(高分项目).zip
- 535springboot + vue 体质测试数据分析及可视化设计.zip(可运行源码+数据库文件+文档)
- python毕业设计-基于Django+OpenCV的二维码生成与识别系统源码.zip
- 基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip
- iOS APP提审checklist
- 第十四届中北大学ACM程序设计竞赛.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功