Class GlueBizControllerImpl

java.lang.Object
com.poscoict.glueframework.biz.control.GlueBizControllerImpl
All Implemented Interfaces:
GlueBizController

public final class GlueBizControllerImpl extends Object implements GlueBizController
BizController 구현체.
GlueBizController는 Web,Non Web App 공통으로 사용되며 Transaction처리 및 Logging을 처리 하고 수행 결과는 GlueContext 에 반영한다.
 예제
 
 사용 예# 1

     GlueContext ctx = new GlueDefaultContext();
     ctx.put("ServiceName", "sample-service");
     GlueBizProvider.getController().doAction(ctx);



 참고 : applicationContext.xml

     <bean id="serviceManager" class="com.poscoict.glueframework.biz.control.GlueServiceManagerImpl">
         <property name="cacheManager" ref="cacheManager" />
         <property name="serviceLoader" ref="serviceLoader" />
     </bean>
     <bean id="serviceLoader" class="com.poscoict.glueframework.biz.control.GlueServiceLoader"/>
     <bean id="cacheManager" class="..."/>
 
  • Method Details

    • getController

      public static GlueBizController getController()
      GlueBizController Instance를 생성 하고 Return 함.
      Controller Instance는 Singletone Pattern으로 최초 한번만 생성됨.
      Returns:
      GlueBizController
    • doAction

      public GlueContext doAction(GlueContext ctx)
      Description copied from interface: GlueBizController
      Transaction을 처리와 Logging을 처리 하고 Service를 실행 한다.
      Transaction은 {xxx}-service.xml 에 다음과 같이 정의 된다.
      
       <transaction-manager id="tx1" commit="true"/>
       <transaction-manager id="tx2" commit="false"/>
      
       위의 Transaction List 만큼 Commit 및 Rollback을 수행하고
       만일 commit="false"이면 Commit을 수행하지 않는다.
       commit="false" 를 사용하는 경우에는 Read Only 경우에 사용된다.
       실제 Transaction의 정의는 applicationContext.xml에 다음과 같이 정의 된다.
      
       <bean id="tx1" class="com.poscoict.glueframework.transaction.GlueDataSourceTransactionManager">
           <property name="dataSource" ref="ds-1"/>
       </bean>
       <bean id="tx2" class="com.poscoict.glueframework.transaction.GlueDataSourceTransactionManager">
           <property name="dataSource" ref="ds-2"/>
       </bean>
       
      Specified by:
      doAction in interface GlueBizController
      Parameters:
      ctx - GlueContext
      Returns:
      GlueContext 결과 값 Return
    • doSubController

      public GlueContext doSubController(GlueContext ctx, boolean newTx)
      Description copied from interface: GlueBizController
      doAction()과 동일하지만 Transaction 처리는 정의에 따라 달라진다.
      
       <activity name="CallSubController" class="com.poscoict.glueframework.biz.activity.GlueSubService">
           <transition name="success" value="HandleError"/>
           <property name="service-name" value="Sub-service"/>
           <property name="new-transacion" value="true"/>
       </activity>
      
       Sub-service 를 호출 하는 위 예제에서 "<property name="new-transacion" value="true"/>" 인 경우
       Main-service 의 Transaction과 별개로 SubService에 정의되어 있는 Transaction을 처리하게 된다.
       "fale"이면 Transaction 처리를 하지 않는다. 즉 MainService의 Transaction을 이용하게 된다.
       
      Specified by:
      doSubController in interface GlueBizController
      Parameters:
      ctx - GlueContext
      newTx - 새로운 Transaction 시작 여부
      Returns:
      GlueContext 결과 값 Return