PE 프레임 워 크 학습 (2)
7898 단어 PowerEngine
개발 플랫폼 PowerEngine:
새로운 기능 개발:
비 즈 니스 논리 처리:
1. 거래: 거래
2. 체인: 체인, 책임 체인
3 、 command: 명령
4. 템 플 릿: 템 플 릿
5. 액 션: 동작
PE 거래 처리 절차:
하나의 거래 의 전송 채널 이 HTTP 든 TCP 든 최종 적 으로 모든 채널 에 대한 Adapter 는 요청 한 Form (HTTP) 이나 메시지 (TCP) 를 채널 과 무관 한 Context 로 변환 합 니 다.
채널 Adapter 가 데 이 터 를 채널 과 무관 한 Context 로 변환 한 후 PowerEngine 핵심 제어 모듈 에 제어 권 을 넘 기 고 해당 거래 의 거래 Id 에 따라 해당 거래 가 거 쳐 야 하 는 처리 과정 을 확인한다.
즉, 거래 Id 에 따라 템 플 릿 을 유일 하 게 확정 할 수 있 고 템 플 릿 에 따라 체인 을 유일 하 게 확정 할 수 있 으 며 체인 이 확정 되면 시스템 은 절차 도 에 따라 처 리 를 시작한다.
요약: 먼저 < transcation > 의 id 번호 에 따라 템 플 릿 (template) 을 찾 은 다음 템 플 릿 에 따라 책임 체인 (chain) 을 찾 습 니 다. chain 을 확인 하면 절차 도 에 따라 실 행 됩 니 다. chain 에서 command 를 실행 하고 deletegatecond 로 실행 한 후에 템 플 릿 으로 이동 한 다음 에 < action > 을 실행 한 다음 에 해당 하 는 jsp 페이지 로 이동 합 니 다.(/posweb/WebContent/WEB-INF/zh_CN/pos/LoanBaseInformationQuery.jsp)
Transaction:
업무 처리 기능 의 입구
관건:
거래 id
인 용 된 템 플 릿
정 의 된 action
데이터 검사
페이지 로 돌아 가 는 경로
transaction 정의:
<transaction id=“preManagerAdd" template=" Id">
<!-- Actions. Actions 。-->
<actions>
<ref name="act01" > Action</ref>
</actions>
<!-- -->
<fields>
<field name=" 1">Style </field>
。。。
</fields>
<!-- -->
<channels>
<!--HTTP -->
<channel type="http">
<param name="success">result.jsp</param>
......
</channel>
</channels>
</transaction>
예: position 프로젝트
/posaction/src/config/pos/trs/pos.xml
<transaction id="LoanBaseInformationQuery" template="queryTemplate">
<description>
@funcName
@trsName
@author
@version 1.0
@remark
@fromPages
</description>
<actions>// action
<ref name="action">LoanBaseInformationQueryAction</ref>
</actions>
<fields>
<field name="ContractNo"></field>
</fields>
<channels>
<channel type="http">
<param name="success">pos/LoanBaseInformationQuery</param>
</channel>
</channels>
</transaction>
<action id="LoanBaseInformationQueryAction"
class="com.csii.ibs.pos.action.LoanBaseInformationQueryAction" parent="BaseQueryAction">
</action>
Template:
템 플 릿 정의:
< template id = "모듈 Id" class = "Full qualified class name of this Template" chain = "인 용 된 책임 체인 Id" >
각 템 플 릿:
빈 템 플 릿 (빈 템 플 릿):
pageLoaderTemplate (템 플 릿 초기 화):
query 템 플 릿 (템 플 릿 조회)
trsConfirmTemplate (템 플 릿 확인)
twPhaseTrsTemplate (중복 제출 방지)
entryTrsWorkflow (심사 제출 템 플 릿)
* 거래 레벨 동명 의 Action 은 모델 레벨 을 덮어 씁 니 다
/poscommon/src/config/template.xml
<template id="queryTemplate" class="com.csii.pe.template.ExecutableSequenceTemplate" chain="chainForRoleControlMV">
<actions>// action
<ref name="action">Placeholder</ref>
<ref name="preAction">WriteQueryTrsJournal</ref>
</actions>
</template>
Chain:
시스템 급 의 거래 논 리 는 추상 적 이다. 예 를 들 어 거래 의 권한, 로그 제어, 로그 와 입력 검사 등 이다.
Chain 정의:
< ref > 인 용 된 command Id. < / ref >
.......
-------------------------------------------------------------------------------------------------------------
/poscommon/src/config/chain.xml
<chain id="chainForRoleControlMV">
<commands>
<ref>MultiVersionViewCommand</ref>
<ref>roleControlCommand</ref>
<ref>validationCommand</ref>
<ref>ruleCommand</ref>
<ref>delegateCommand</ref>
<ref>${chain.monitor}</ref>
</commands>
</chain>
command: command 정의:
시스템 기본 정의 commands:
/poscommon/src/config/chain.xml
//......
<command id="delegateCommand" class="com.csii.pe.chain.command.DelegateCommand" />
//.......
Action:
Action 은 PowerEngine 업무 처리 의 최소 유닛 이 고 Action 도 구체 적 인 단일 응용 개발 자가 직접 직면 해 야 할 대상 이 며 Action 을 통 해 거래 유닛 처 리 를 실현 하 는 것 이 거래 의 구체 적 인 동작 이다.
Action 의 정의:
property value
......
< ref name = "property name" > 인 용 된 대상 의 Id < / ref >
......
Action 은 Marker 인터페이스 일 뿐 입 니 다.Action 이 특정한 처 리 를 할 수 있 도록 개발 자 는 해당 하 는 인 터 페 이 스 를 실현 해 야 한다.
init ()
Execute()
Submit()
Prepare()
Bean 정의 계승 방식:
<action id="BaseQueryAction" class="com.csii.ibs.action.IbsQueryAction">
<ref name="trsCodeResolver">hostTrsCodeResolver</ref>
<ref name="returnCodeValidator">hostReturnCodeValidator</ref>
<ref name="transportBean">${BaseQueryAction.hostTransportBean}</ref>
</action>
<action id="ActBalAction" class="com.csii.ibs.query.action.ActBalAction" parent="BaseQueryAction">
</action>
<action id="ActBalAction" class="com.csii.ibs.query.action.ActBalAction" parent="BaseQueryAction">
<ref name="trsCodeResolver">hostTrsCodeResolver</ref>
<ref name="returnCodeValidator">hostReturnCodeValidator</ref>
<ref name="transportBean">${BaseQueryAction.hostTransportBean}</ref>
</action>
Action: BaseQueryAction(IbsQueryAction)
BaseTwoPhaseAction(IbsTwoPhaseAction)
CachedPagableQueryAction
DBPagableQueryAction
/poscommon/src/config/action.xml
<action id="WriteQueryTrsJournal" class="com.csii.ibs.common.jnl.WriteQueryTrsJournal">
<ref name="idFactory">idFactory</ref>
<param name="jnlSql">common.insertQryLog</param>
</action>