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)