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