java动态加载插件化编程详解
前言
对于java程序员来说,插件化是一件很酷的功能,小二有幸在工作中实现了此功能。
背景:
需要将mysql的数据通过canal同步至kafka/mysql/hdfs等
实现
/**
*Createdbyshengjk1on2017/12/11
*/
publicclassPluginManager{
privatefinalstaticLoggerlogger=LoggerFactory.getLogger(SendMessageFactory.class);
privateURLClassLoaderurlClassLoader;
publicPluginManager(Listplugins)throwsMalformedURLException{
init(plugins);
}
//将所有插件动态加载至JVM中
privatevoidinit(Listplugins)throwsMalformedURLException{
intsize=plugins.size();
URL[]urls=newURL[size];
for(inti=0;iclazz=urlClassLoader.loadClass(className);
Objectinstance=clazz.newInstance();
return(PluginService)instance;
}
}
然后就可以进行插件的调用了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。