> Java > java지도 시간 > 본문

Java에서 프로세스 조정 프레임워크를 구현하는 방법

王林
풀어 주다: 2023-05-01 21:49:05
앞으로
2612명이 탐색했습니다.

프로세스 등록

앞서 yml, 속성, xml, json 및 인터페이스 형식의 등록 프로세스 모델을 지원해야 한다고 언급했습니다. 단일 책임 원칙을 반영하려면 다음과 같은 논리를 처리해야 합니다. 올바른 확장 개발을 반영하기 위해 수정 폐쇄 원칙을 먼저 정의한 다음 팩토리 모델을 통해 해당 구현 로직을 제공합니다. , 특정 구현은 인터페이스를 통해 호출되며 여기서 구현은 공급자이며 전략 모드의 집합입니다.

Java에서 프로세스 조정 프레임워크를 구현하는 방법

프로세스 로딩

프로세스 로딩을 위한 몇 가지 다른 기능적 요구 사항을 알아야 합니다. 1. 통합된 외부 액세스 인터페이스 제공 2. 실행 기록 및 실행 시간 제공 3. 다양한 프로세스 노드에서 다양한 파서를 정의해야 함 4. 팩토리를 통해 구문 분석 유형을 생성합니다. 5. 프로세스 노드가 순서대로 실행됩니다.

Java에서 프로세스 조정 프레임워크를 구현하는 방법

다양한 노드 유형을 통해 다양한 구문 분석 방법을 실행해야 합니다. 구문 분석 클래스를 생성하려면 팩토리 모드를 사용해야 하고, 외부 확장 개발 및 수정을 열어야 하고, 다른 노드를 건드리지 않고 노드를 추가해야 합니다. 로직, 팩토리 함수에 노드 파서를 추가하기만 하면 파싱할 때마다 파서를 생성하는 대신 팩토리 함수를 로드할 때 파싱 개체를 생성하기 위해 여기서 Map 컬렉션을 정의하여 불필요한 것을 줄입니다. 메모리

코드는 다음과 같습니다:

<code>public class NodeComponentFactory {<br><br>    private final static Map<string> cacheParser = new HashMap();<br><br>    static {<br>        cacheParser.put(NodeParserEnum.method.name(),new MethodNodeComponent());<br>        cacheParser.put(NodeParserEnum.bean.name(),new BeanNodeComponent());<br>        cacheParser.put(NodeParserEnum.condition.name(),new ConditionNodeComponent());<br>        cacheParser.put(NodeParserEnum.service.name(),new ServiceNodeComponent());<br>        cacheParser.put(NodeParserEnum.subflow.name(),new SubFlowNodeComponent());<br>    }<br><br>    public static NodeParser getNodeInstance(String nodeName){<br>        return cacheParser.get(nodeName);<br>    }<br>}<br></string></code>
로그인 후 복사

각 노드 구문 분석 유형이 파서 인터페이스를 구현해야 하고 각 노드가 유사한 단계를 가지고 있다는 것을 알게 되면 여기서도 를 준수하는 추상 팩토리 사용을 고려해야 합니다. 종속성 반전의 설계 원칙은 상위 모듈이 종속성 인터페이스를 통해 액세스된다는 것입니다. 다음 모듈은 추상 클래스를 상속하고 전략 패턴을 사용하여 구현 논리 프로세스에서 인터페이스를 호출합니다. 초기화 매개변수 입력 및 레코드 실행과 같은 반복 내용을 모두 추상 클래스에 넣고 템플릿 모드를 사용하여 프로세스 노드가 구문 분석 수준에만 집중할 수 있도록 합니다.

<code>public abstract class AbstractNodeComponent implements NodeParser{<br><br>    public Map<string node> nodeMap;<br><br><br>    /**<br>     * 初始化参数<br>     * @param inputUrl<br>     * @param baseInput<br>     * @return<br>     */<br>    public BaseInput initInput(String inputUrl, BaseInput baseInput){<br>        BaseInput baseInputTarget = ClassUtil.newInstance(inputUrl, BaseInput.class);<br>        BeanUtils.copyProperties(baseInput,baseInputTarget);<br>        return baseInputTarget;<br>    }<br><br><br>    /**<br>     * 解析节点信息<br>     * @param node 节点信息<br>     * @param baseInput 请求参数<br>     * @param baseTemp 临时上下文<br>     * @return<br>     */<br>    public BaseOutput parserNode(Node node, BaseInput baseInput, BaseTemp baseTemp){<br>        baseTemp.setFlowRecord(baseTemp.getFlowRecord().append(FlowConstants.NODEKEY+FlowConstants.NODE+FlowConstants.COLON+node.getId()));<br>        BaseOutput baseOutput = parser(node, baseInput, baseTemp);<br>        return baseOutput;<br>    };<br><br>    @Override<br>    public void setNodeMap(Map<string node> nodeMap) {<br>        this.nodeMap = nodeMap;<br>    }<br><br>    @Override<br>    public abstract BaseOutput parser(Node node, BaseInput baseInput, BaseTemp baseTemp);<br><br>}</string></string></code>
로그인 후 복사

프로세스 로딩 순서

; 프로세스 실행을 위해서는 컴포넌트를 여러 부분으로 나누어야 합니다. 단일 책임 원칙을 구현하려면 독립적으로 기능을 구현하는 클래스를 하나의 컴포넌트로 나누는 것이 가장 좋습니다. 실행 기능을 매우 세밀하게 나누어야 유연성을 가질 수 있습니다. 아래 순서도에서 여러 구성 요소를 볼 수 있는데, 첫 번째는 프로세스의 통합 실행을 위한 입구이고, 첫 번째는 외부 호출을 위한 인터페이스입니다. 두 번째는 하위 프로세스 실행을 위한 입구입니다. 두 번째 구성 요소는 위에서 언급한 팩토리 클래스인 관리 구성 요소를 통합 방식으로 로드하는 노드입니다. 세 번째는 구현에 사용되는 각 구성 요소의 자체 파서입니다. 다양한 유형의 노드 작동, 프로세스, 관리 및 노드 간의 관계를 알아야 구성 요소 간의 경계가 감소하므로 다양한 구성 요소가 유연하게 구성될 수 있습니다.

Java에서 프로세스 조정 프레임워크를 구현하는 방법

위 내용은 Java에서 프로세스 조정 프레임워크를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿