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组件开发指南的更多相关文章

  1. Blazor 模板化组件开发指南

    翻译自 Waqas Anwar 2021年4月15日的文章 <A Developer's Guide To Blazor Templated Components> [1] 在我之前的一篇 ...

  2. Blazor 组件库开发指南

    翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...

  3. jQuery MiniUI 开发指南+API组件参考手册

    jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅.                 1.Hello M ...

  4. Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页

    Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页 在FireMonkey iOS应用程序中的Tab Tab由FMX.TabControl.TTabControl定 ...

  5. Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件

    Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件 在FireMonkey iOS应用程序中使用WebBrowser 在iOS平台上,FireMonkey使用T ...

  6. Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox组件来从列表中选择某一项

    http://blog.csdn.net/delphiteacher/article/details/8924110 Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox ...

  7. Delphi组件开发教程指南目录

    用Delphi开发的时间也不短了!刚接触Delphi的时候,就觉得组件这个东西非常方便!根本不必知道组件内部的作为,只要使用就好了!然而用的多了,也不免会对各种delphi组件的内部实现方式产生兴趣! ...

  8. HarmonyOS三方件开发指南(14)-Glide组件功能介绍

    <HarmonyOS三方件开发指南>系列文章合集 引言 在实际应用开发中,会用到大量图片处理,如:网络图片.本地图片.应用资源.二进制流.Uri对象等,虽然官方提供了PixelMap进行图 ...

  9. HarmonyOS三方件开发指南(19)-BGABadgeView徽章组件

    目录: 1.引言 2.功能介绍 3.BGABadgeView 使用指南 4.BGABadgeView 开发指南 5.<HarmonyOS三方件开发指南>系列文章合集 引言 现在很多的APP ...

随机推荐

  1. JS如何遍历Object中的所有属性?

    JS如何遍历Object中的所有属性? var params = ""; for(var i in baseParams){ params += "&" ...

  2. Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)

    Elasticsearch生成mapping的方式上有多种方式,我们可以把mapping做成配置文件,也可以用spring-data-elasticsearch基于注解生成. 在基于注解生成这种方式上 ...

  3. 树形DP总结,持续更新

    自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...

  4. 字符串-回文-Manacher算法

    http://blog.csdn.net/zzkksunboy/article/details/72600679 https://segmentfault.com/a/1190000008484167 ...

  5. linux:查找搜索文件

    学习内容来源: 实验楼链接: https://www.shiyanlou.com/ 与搜索相关的命令常用的有 whereis,which,find 和 locate . whereis 简单快速 $w ...

  6. <!DOCTYPE html>有什么用?

    <!DOCTYPE html> 是文档声明,必须放在文档第一行,它的作用就是告诉浏览器以哪个html版本来解析你的html代码.当你不写声明的时候,浏览器就会以自己的怪异模式来解析你的ht ...

  7. Java GUI程序设计

    在实际应用中,我们见到的许多应用界面都属于GUI图形型用户界面.如:我们点击QQ图标,就会弹出一个QQ登陆界面的对话框.这个QQ图标就可以被称作图形化的用户界面. 其实,用户界面的类型分为两类:Com ...

  8. 理解SQL Server中索引的概念,原理

    转自:http://www.cnblogs.com/CareySon/archive/2011/12/22/2297568.html 简介 在SQL Server中,索引是一种增强式的存在,这意味着, ...

  9. A solution for MySQL Assertion failure FIL_NULL

    A solution for MySQL Assertion failure FIL_NULL http://michaelfranzl.com/2014/01/25/solution-mysql-a ...

  10. PHPExcel使用-使用PHPExcel导入文件

    导入步骤: 1. 实例化excel读取对象 2. 加载excel文件 ----------------> ( 1>. 全部加载. 2>. 选择加载. ) 3. 读取excel文件 - ...