服務器程序動態加載自定義jar包的過程

需求:

用過hive的都知道,可以自定義hive的一個udf jar,然後將這個jar add到hive服務端,就會加載這個jar實現用戶自定義邏輯。現在的需求就是實現這麼一個服務端所做的事情!

場景:

用戶自定義一些邏輯,主要是實現一個公共的接口,每個用戶自定義自己的實現。然後服務端加載這些jar包以實現服務端的定製化.

結構圖如下

 

pf4j開源工具說明

搜索了一大把,發現 pf4j 這個開源工具可以滿足需求,所以就決定用它了https://github.com/decebals/pf4j。但是這個工具使用起來有點繞,所以這裏記錄下,主要是參考這個工程的run-domo.sh

  • pf4j-demo-api  

     這裏定義了公用接口

  • pf4j-demo-plugins  

這裏可以對接口自定義實現。這裏重點說明:如果定義了多個plugins,需要各個打包以後,將生成的jar包或者zip包放到一個 公共目錄  "/a/b",這個目錄會在下面的

主函數中使用這個公共目錄

PluginManager pluginManager = new DefaultPluginManager(new File("/a/b").toPath());

  • pf4j-demo-app

這裏就是主函數了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章