PE框架
1.主要面向金融领域
2.扩展spring标签,对spinrgMVC和springCore做了扩展
(1)bean标签:transaction、style、action、template、chain等
(2)jsp标签:pe:token、pe:hiddenData等
3.更加紧凑的交易配置封装
4.封装大量的service组件,可以直接在action中使用
流程框图:
MainServlet->MainController->CoreController->TransactionConfig->Template->Chain->Template
首先根据
无论一个交易的发送渠道是HTTP还是TCP,最终针对每一个渠道的Adapter会将请求的Form(HTTP)或报文(TCP)转换成与渠道无关的Context。当渠道Adapter将数据转换为渠道无关的Context后,将控制权交给PowerEngine核心控制模块,根据该交易的交易Id,来确认该交易需要经过的处理过程。
1 首先执行Chain中的一系列Commands,若有其中一个Command认为需结束处理,则处理立刻结束。
2 当Chain执行到Delegate Command时,开始执行Template;不同的Template 会调用不同的 Actions,以完成实 际的交易处理。
3 Context是整个 Power Engine 框架的数据交换核心接口类,可通过GetData方法来访问交易请求的数据要素, 通过SetData方法来返回数据。
4 HTTP 开发中,有 HttpServletContext实现类,在基于 TCP/Socket 开发中有 TcpContext ,无论一个交易的发送 渠道是HTTP还是TCP,最终会将请求的Form(HTTP)或报文(TCP)转换成与渠道无关的Context。
style:样式,用于判断输入数据的格式等。
chain:系统级的交易逻辑抽象,如:交易的权限、登陆控制、日志和输入检查等
common:chain下的操作,理解为命令
template: 对一组有类似处理流程的交易处理的抽象,定义交易内部的执行流程,如:复核交易、查询交易
Action:是PowerEngine业务处理的最小单元,Action也是具体单个应用开发者需要直接面对的对象,通过Action实现交易单元处理,是交易的具体动作
sqlmap 是一个SQL 射入工具,使得sql语句与程序代码分离
PE框架简介
例子
1、根据页面请求,找到 id="QueryCardNoForGetDataConfirm"的transaction
其中,actions在template.xml的Placeholder执行时调用
fields在chain.xml的commonds的其中一个commond:ValidationCommand中有用到
channels在MainController.resolveViewName()用到,详见 pe框架简介5--CoreController 的8
然后根据 template="trsConfirmTemplate",找到template.xml
2、根据chain="chainForRoleControl"找到 chain.xml
3、按顺序执行commonds中的execute()方法,执行完后,通过delegateCommand调用template.xml中的actions方法。调用逻辑详见:pe框架简介5--CoreController。