<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 插件開發說明 插件開發手冊 ## **一、說明** 在實際項目應用當中,YFE前置系統內置的報文組件可能滿足不了某些報文解析要求,此時項目實施人員可以開發流程插件對特殊報文進行處理;在前置流程收到報文后調用插件進行解包,在返回應答報文前調用插件進行組包報文 ## **二、插件開發** 插件開發本質上是編寫一個業務處理jar包,放置到指定位置,然后在流程配置中配置對應的類路徑即可使用。 ### 1、新建Java項目 新建一個普通的Java project即可。 如果新建的是maven項目,要注意最后打包jar不能是運行包,maven依賴三方庫注意單獨拿出來,方面后續放到plugin目錄 建議使用普通Java project 如果有之前創建的插件項目,亦可使用 ### 2、編寫業務處理邏輯 在項目新建一個Java class。類名按業務自行定義。類的結構如下。 ``` <pre class="calibre29">``` package com<span class="token1">.</span>ylink<span class="token1">.</span>plugin<span class="token1">.</span>demo<span class="token1">;</span> import java<span class="token1">.</span>util<span class="token1">.</span>HashMap<span class="token1">;</span> import java<span class="token1">.</span>util<span class="token1">.</span>Map<span class="token1">;</span> import org<span class="token1">.</span>slf4j<span class="token1">.</span>Logger<span class="token1">;</span> import cn<span class="token1">.</span>hutool<span class="token1">.</span>core<span class="token1">.</span>date<span class="token1">.</span>DateUtil<span class="token1">;</span> public class <span class="token5">DemoPlugin</span> <span class="token1">{</span> <span class="token6">/* * 日志對象,由通訊服務自動注入 */</span> public static Logger log<span class="token1">;</span> <span class="token6">/** * 初始化方法 * * @param cfgs 當前接入配置 */</span> public static void <span class="token5">initEnv</span><span class="token1">(</span>Map cfgs<span class="token1">)</span> <span class="token1">{</span> <span class="token1">}</span> <span class="token6">/** * 插件具體執行業務處理 <br/> * 方法必須是static的 <br/> * 方法的入參的順序和數量是固定的<br/> * * @param tranCode 交易碼 * @param inObj 傳入參數。有流程配置時指定 * @return 返回值無約束,根據業務執行定義 * @throws Exception */</span> public static Map<span class="token"><</span>String<span class="token1">,</span> Object<span class="token">></span> <span class="token5">test</span><span class="token1">(</span>String tranCode<span class="token1">,</span> Object inObj<span class="token1">)</span> throws Exception <span class="token1">{</span> log<span class="token1">.</span><span class="token5">info</span><span class="token1">(</span><span class="token3">"客戶化插件調用開始。。。。。。。"</span><span class="token1">)</span><span class="token1">;</span> log<span class="token1">.</span><span class="token5">info</span><span class="token1">(</span><span class="token3">"參數 1 交易碼={}"</span><span class="token1">,</span> tranCode<span class="token1">)</span><span class="token1">;</span> log<span class="token1">.</span><span class="token5">info</span><span class="token1">(</span><span class="token3">"參數 2 配置參數=={}"</span><span class="token1">,</span> inObj<span class="token1">)</span><span class="token1">;</span> <span class="token6">// TODO 1、參數校驗</span> <span class="token6">// TODO 2、業務處理</span> Map<span class="token"><</span>String<span class="token1">,</span> Object<span class="token">></span> retMap <span class="token">=</span> <span class="token4">new</span> <span class="token5">HashMap</span><span class="token"><</span>String<span class="token1">,</span> Object<span class="token">></span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> retMap<span class="token1">.</span><span class="token5">put</span><span class="token1">(</span><span class="token3">"tranCode"</span><span class="token1">,</span> tranCode<span class="token1">)</span><span class="token1">;</span> retMap<span class="token1">.</span><span class="token5">put</span><span class="token1">(</span><span class="token3">"date"</span><span class="token1">,</span> DateUtil<span class="token1">.</span><span class="token5">now</span><span class="token1">(</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token4">return</span> retMap<span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` - log 日志對象,固定名稱,不可改,為org.slf4j.Logger 對象 - 類內為靜態方法 - 方法的入參是固定的格式,不能修改 - 方法返回值可以根據業務自行定義 - 插件中使用到三方庫,直接放到項目的lib文件夾,設置classpth即可 ### 3、導出jar Eclipse中直接在項目中右鍵 export Jar file即可: - 導出類型選擇 Java-> JAR file ![](https://img.kancloud.cn/63/7c/637cbe682a1a258acc93e26968f1b977_1006x606.png) - 導出文件只選擇src即可。Lib目錄無需導出 ![](https://img.kancloud.cn/53/ca/53ca6414e5f3f78e540e81feb7f3fa50_1016x188.png) ## **三、部署、配置** ### 1、部署 將導出的jar放到通訊服務的根目錄的plugin文件夾(如沒有,新建一個): ![](https://img.kancloud.cn/a9/44/a944d1e9f37582faa4040b91c891003d_976x526.png) - plugin文件夾和項目運行包同級 - 如果插件中使用的三方庫(插件項目lib目錄jar)在通訊服務中沒有引入,需要將三方jar也放到plugin目錄下 ### 2、配置 流程接入配置:根據業務實際流程在相應位置增加 【插件調用】節點。 ![](https://img.kancloud.cn/b6/c4/b6c4ccaaa408b67ef981a470b8ab309a_528x346.png) 配置插件信息:類名+方法名 ![](https://img.kancloud.cn/d1/f2/d1f21e03123f209d2d542915d964f137_1107x603.png) - 類名必須是類的全路徑名稱,通訊服務根據類名反射獲取類實例 - 方法名必須和插件類一致,通訊按照以下規則獲取方法調用:getMethod(strMethod, String.class, Object.class)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看