javashop組件開發指南
1、 概念解釋
組件:可以理解為是插件,功能點的一個集合。
插件:是指具體的某個功能。
插件樁:是負責調用插件。
事件:是要決定什么時候執行插件
一個組件是由多個插件組成,一個插件有多個插件樁,一個插件樁對應多個插件,插件和插件樁是多對多關系。
2、組件開發
1、新建組件項目,定義為demo組件。如圖:
組件的包名必須符合一定的規則,EOP機制才會識別這些組件。
以com.enation開頭。例:
com.enation.app.groupbuy.component 組件包
com.enation.app.groupbuy.component.plugin 插件包
2、 建立組件類
如圖:
▪ 2.1、實現IComponent接口
組件類必須實現
此接口的install和uninstall方法在組件被安裝和卸載時會被調用,你可以在需要時在此執行sql創建數據庫結構,或者作一些你想做的事。
▪ 2.2、用@Component注解來標記
EOP組件機制使用Spring自動化掃描注解的機制來完成組件的掃描的,應此需要使用@Component注解來標記此組件類。要確保此類的beanid要保持唯一
3、 建立component.xml文件
component.xml文件位於和上述組件同級目錄
用於描述組件信息及組件包涵的插件
我們暫時只定義組件本身的配置,插件稍后配置,如圖
<?xml version="1.0" encoding="UTF-8"?>
<component name="demo組件" version="1.0" javashop_version="3.0.0" author="javashop">
</component>
驗證組件是否正常
3.1、添加依賴,將我們的組件添加到b2b2c中,如圖
3.2、啟動項目查看組件是否可以正常安裝 卸載 啟用 停用
執行安裝和卸載分別打印出安裝 卸載方法
組件開發成功!
4、 開發插件(實現會員登錄發短息提醒)
插件是基於事件機制來運轉的
4.1、插件必須繼承於AutoRegisterPlugin 且選擇性實現IMemberLoginEvent
注意插件類必須符合兩個規范:
▪ 1、繼承AutoRegisterPlugin
繼承此類才成為一個EOP的插件,系統會自動識別后,將其插入相應的業務插件樁中,將來在業務被調用。
▪ 2、用@Component注解來標記
同樣地,EOP插件機制使用Spring自動化掃描注解的機制來完成插件的掃描的,應此需要使用@Component注解來標記此插件類。
4.2、配置component.xml 如圖:
<plugins>
<plugin name="demo插件" id="smsSendPlugin">
<bundle id="memberPluginBundle"></bundle>
</plugin>
</plugins>
nam:插件的名稱
id :具體的插件beanid
bundle:插件樁
各應用事件及插件樁集合
http://javamall.com.cn/help/index.php/EOP
各應用事件及插件樁集合
啟動,運行程序,將此組件安裝並執行登錄操作
由上圖看出我們的此插件已經被正確執行!
------------------------------
本人微信公眾帳號: 心禪道(xinchandao)
本人微信公眾帳號:雙色球預測合買(ssqyuce)