PE 프레임 워 크 학습 (2)

7898 단어 PowerEngine
PE 개발 기초:
개발 플랫폼 PowerEngine:
PE框架学习(2)_第1张图片
새로운 기능 개발:
PE框架学习(2)_第2张图片
비 즈 니스 논리 처리:
1. 거래: 거래
2. 체인: 체인, 책임 체인
3 、 command: 명령
4. 템 플 릿: 템 플 릿
5. 액 션: 동작
PE 거래 처리 절차:
하나의 거래 의 전송 채널 이 HTTP 든 TCP 든 최종 적 으로 모든 채널 에 대한 Adapter 는 요청 한 Form (HTTP) 이나 메시지 (TCP) 를 채널 과 무관 한 Context 로 변환 합 니 다.
채널 Adapter 가 데 이 터 를 채널 과 무관 한 Context 로 변환 한 후 PowerEngine 핵심 제어 모듈 에 제어 권 을 넘 기 고 해당 거래 의 거래 Id 에 따라 해당 거래 가 거 쳐 야 하 는 처리 과정 을 확인한다.
  • 먼저 Chain 중의 일련의 Commands 를 실행 합 니 다. 만약 에 하나의 Command 가 처 리 를 끝내 야 한다 고 생각 하면 처 리 는 즉시 끝 납 니 다.
  • Chain 이 Delegate Command 에 실 행 될 때 Template 를 실행 합 니 다.
  • 서로 다른 Template 는 서로 다른 Actions 를 호출 하여 실제 거래 처 리 를 완성 합 니 다.

  • 즉, 거래 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:
  • Delegate Command: 모든 체인 은 하나의 Delegate Comand 에 만 국한 되 어야 합 니 다.
  • ValidationCommand: 시스템 급 스타일 기반 유효성 검 사 를 수행 합 니 다.
  • LoginControl Command: 사용자 가 서 비 스 를 방문 하 는 빈 도 를 제어 하 는 데 사용 되 며 주로 로그 인 거래 에 사 용 됩 니 다.
  • RoleControlCommand: 사용자 가 서 비 스 를 방문 하 는 권한 을 제어 하 는 데 사용 되 며 주로 사용자 가 로그 인 해 야 할 거래 권한 을 제어 하 는 데 사 용 됩 니 다.사용자 로그 인 이 필요 없 는 거래 에 대해 서 는 Command 를 사용 하지 않 습 니 다.

  • /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>

    좋은 웹페이지 즐겨찾기