activiti 확장점을 통해 노드를 다시 쓰는 행위

2214 단어
activit 프로젝트에서 노드를 다시 쓰는 Behaviour가 필요할 때도 있지만 코드를 역컴파일하면 후속 업그레이드와 프로젝트 패키지가 불편합니다.사실acitivit는 확장점 리셋 노드를 제공합니다.다시 쓰는 방법은 다음과 같습니다.
  • activiti가processEngineConfiguration을 초기화할 때 행위공장 설정
  • @Bean(name = "processEngineConfiguration")
        public ProcessEngineConfigurationImpl processEngineConfiguration() {
            SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();
            processEngineConfiguration.setDataSource(druidDataSource());
            processEngineConfiguration.setTransactionManager(annotationDrivenTransactionManager());
            processEngineConfiguration.setProcessEngineName(ProcessEngines.NAME_DEFAULT);
            //        
            processEngineConfiguration.setTypedEventListeners(this.getGlobalActivitiEventListener());
            //      
            processEngineConfiguration.setActivityBehaviorFactory(new CdpActivityBehaviorFactory());
            //      
            processEngineConfiguration.setIdGenerator(new ActivitiIdGenerator());
            //    
            processEngineConfiguration.setBeans(FunctionFactory.getFunctionBeans());
            return processEngineConfiguration;
        }
    

    여기서 키 코드는
        //      
            processEngineConfiguration.setActivityBehaviorFactory(new CdpActivityBehaviorFactory());
    

    2. 클래스 CdpActivityBehaviorFactory는 노드 행위 공장으로 모든 노드의 행위 실현 클래스를 설정합니다.
    @Component
    public class CdpActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
     public CdpUserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask, TaskDefinition taskDefinition) {
            return new CdpUserTaskActivityBehavior(userTask.getId(), taskDefinition);
        }
    

    상기 코드에서CdpUserTaskActivityBehavior는 이쪽에서 다시 쓰는 노드 행위 클래스입니다.클래스 CdpUserTaskActivityBehavior는 노드 행위로 원래의 UserTaskActivityBehavior를 계승할 수 있으며, 다시 쓰는 방법을 덮어쓰면 됩니다
    public class CdpUserTaskActivityBehavior extends UserTaskActivityBehavior{
    //        
    }
    

    마지막으로 노드userTask에서 다시 써야 하는 행위는 세 가지가 있는데 단일 실례, 직렬 다중 실례, 병렬 다중 실례 세 가지가 있는데 그것이 바로 UserTaskActivityBehavior,ParallellMultiInstanceBehavior,SequentialMultiInstanceBehavior,SequentialMultiInstanceBehavior이다.

    좋은 웹페이지 즐겨찾기