javashop组件开发指南
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)
javashop组件开发指南的更多相关文章
- Blazor 模板化组件开发指南
翻译自 Waqas Anwar 2021年4月15日的文章 <A Developer's Guide To Blazor Templated Components> [1] 在我之前的一篇 ...
- Blazor 组件库开发指南
翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...
- jQuery MiniUI 开发指南+API组件参考手册
jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅. 1.Hello M ...
- Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页
Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页 在FireMonkey iOS应用程序中的Tab Tab由FMX.TabControl.TTabControl定 ...
- Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件
Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件 在FireMonkey iOS应用程序中使用WebBrowser 在iOS平台上,FireMonkey使用T ...
- Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox组件来从列表中选择某一项
http://blog.csdn.net/delphiteacher/article/details/8924110 Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox ...
- Delphi组件开发教程指南目录
用Delphi开发的时间也不短了!刚接触Delphi的时候,就觉得组件这个东西非常方便!根本不必知道组件内部的作为,只要使用就好了!然而用的多了,也不免会对各种delphi组件的内部实现方式产生兴趣! ...
- HarmonyOS三方件开发指南(14)-Glide组件功能介绍
<HarmonyOS三方件开发指南>系列文章合集 引言 在实际应用开发中,会用到大量图片处理,如:网络图片.本地图片.应用资源.二进制流.Uri对象等,虽然官方提供了PixelMap进行图 ...
- HarmonyOS三方件开发指南(19)-BGABadgeView徽章组件
目录: 1.引言 2.功能介绍 3.BGABadgeView 使用指南 4.BGABadgeView 开发指南 5.<HarmonyOS三方件开发指南>系列文章合集 引言 现在很多的APP ...
随机推荐
- SVG学习笔录(二)
一.svg动画SMIL SVG采用的是使用文本来定义图形,这种文档结构非常适合于创建动画.要改变图形的位置.大小和颜色,只需要调整相应的属性就可以了.事实上,SVG有为各种事件处理而专门设计的属性,甚 ...
- spring task的定时任务突然断了
spring定时任务只开启一个线程去工作也就是串行工作,定时调度任务出现阻塞导致线程终止 加上这个试试 <!-- <task:annotation-driven /> --> ...
- Java 中运用DOS运行class(字节码)
附属: -dir:例举该目录的所有文件名称 有<dir>是文件夹,没有<dir>是文件-cd: 改变目录 进入其他目录 change direction-cd\:一次性回到根目 ...
- ubuntu16.04配置tensorflow-gpu环境
1.安装驱动 参考: 史上最全的ubuntu16.04安装nvidia驱动+cuda9.0+cuDnn7.0 https://blog.csdn.net/qq_31215157/article/det ...
- NBUTOJ 1643 - 阶乘除法 - [数学题]
题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1643 问题描述 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*... ...
- NEFU 118 - n!后面有多少个0 & NEFU 119 - 组合素数 - [n!的素因子分解]
首先给出一个性质: n!的素因子分解中的素数p的幂为:[ n / p ] + [ n / p² ] + [ n / p³ ] + …… 举例证明: 例如我们有10!,我们要求它的素因子分解中2的幂: ...
- iOS核心动画の摘记
- angularJS module里的'服务'
首先,为了举栗子,先写好如下的模型,控制器,html: html: <!DOCTYPE html> <html ng-app="serviceApp"> & ...
- grpc protobuf
1.ProtoBuffer是google的一款非常高效的数据传输格式框架 2.一个方法仅能接受一个参数 3.对于定义的message,每个值都有一个唯一的number类型的数字,根据官方文档的解释:它 ...
- Python开发【模块】:Weakref
Weak references 前言: weakref模块允许python开发者创建弱引用对象. 再接下来中,术语referent代表被弱引用所引用的对象. 一个弱引用对于对象是不能够保持对象存活的: ...