Stepchain-spring-boot-starter
Java Pipeline Step Chain — это как Apache Commons Chain и Commons Pipeline. Популярной техникой организации выполнения сложных процессов обработки является паттерн «Цепочка ответственности».
Stepchain — это универсальная структура для обработки бизнес-процессов, подобная Java Pipeline Step Chain, которая используется для организации выполнения сложных процессов обработки.
Примечание 1: открыт только общий код (удалены неоткрытые части, что не влияет на использование), включая компоненты конфигурации, кэш-центр, унифицированный интерфейс данных и API, связанные с бизнес-данными.
Примечание 2: если вам это помогло, пожалуйста, fork start или сделайте пожертвование. Следите за мной. Спасибо!
Gitee: https://gitee.com/zengfr/stepchain GitHub: https://github.com/zengfr/stepchain/
Центральные репозитории Sonatype Mvnrepository
— Maven (не использует Spring Boot):
<dependency>
<groupId>com.github.zengfr.project</groupId>
<artifactId>stepchain</artifactId>
<version>0.0.7</version>
</dependency>
— Maven (использует Spring Boot):
<dependency>
<groupId>com.github.zengfr.project</groupId>
<artifactId>stepchain-spring-boot-starter</artifactId>
<version>0.0.7</version>
</dependency>
— Gradle:
compile group: 'com.github.zengfr.project', name: 'stepchain', version: '0.0.7'
compile group: 'com.github.f.project', name: 'stepchain-spring-boot-starter', version: '0.0.7'
Интерфейс Pipeline ChainBuilder StepBuilder Step Chain Javadoc api документация
IProcessor<I, Boolean> createProcessor(Predicate<I> predicate);
IProcessor<I, Boolean> createProcessor(Consumer<I> consumer);
IProcessor<I, O> createProcessor(Function<I, O> func);
A, B, C> IProcessor<A, C> createProcessor(IProcessor<A, B> first, IProcessor<B, C> second);
A, B, C, D> IProcessor<A, D> createProcessor(IProcessor<A, B> processor1, IProcessor<B, C> processor2, IProcessor<C, D> processor3);
IConditionSelectorProcessor<String, Boolean, String> p3 = pipeline.createConditionValidatorProcessor(validator, trueProcessor, falseProcessor);
5.2. Есть процессор, создаётся validator для создания цикла выполнения, который завершается, когда validator возвращает false.
IConditionLoopProcessor<String, String> p2 = pipeline.createConditionLoopProcessor(validator, processor);
5.3. Есть процессор, создаётся selector для логики выбора, который выбирает ветвь для выполнения на основе ключа, возвращаемого selector. Если ключ не соответствует ни одной ветви, выполняется ветвь по умолчанию.
IConditionSelectorProcessor<String, String, String> p1 = pipeline.createConditionSelectorProcessor(selector);
p1.setBranch(S key, IProcessor<I, O> processor);
p1setDefaultBranch(S key);
5.4. Есть процессор, создаётся логика if/else if/else. Результат сравнивается с результатом validator, и если они совпадают, то выполняется соответствующая ветвь branchProcessor. В противном случае выполняется ветвь defaultBranchProcessor по умолчанию. **UnaryContext<Integer> контекст = pipeline.createContext(12345678);**
IStep<UnaryContext> шаг = pipeline.createStep(); IStep<UnaryContext> шаг2 = pipeline.createStep();
IChain<UnaryContext, Boolean> c2 = pipeline.createChain(func);
IChain<UnaryContext, String> c3 = pipeline.createChain(func3); Function<String, Integer> func4 = null; Function<Integer, String> func5 = null; Function<String, Boolean> func6 = null;
IChain<String,Integer > c4 = pipeline.createChain(func4); IChain<Integer, String> c5 = pipeline.createChain(func5); IChain<String, Boolean> c6 = pipeline.createChain(func6);
IChain<UnaryContext, Boolean> c7 = c3.next(c4).next(c5).next(c6);
шаг2.put(c2); шаг2.put(шаг); шаг2.put(func); //шаг2.put(с7);
шаг2.process(контекст); System.out.println(контекст.контекст); }
public static void testPipeline3(IPipeline pipeline) throws Exception { IProcessor<String, String> селектор = null; IProcessor<String, Boolean> валидатор = null;
IProcessor<String, String> процессор = null;
IProcessor<String, String> первый = null;
IProcessor<String, String> второй = null;
IConditionSelectorProcessor<String, Boolean, String> p3 = pipeline.createConditionValidatorProcessor(валидатор, первый, второй);
IConditionLoopProcessor<String, String> p2 = pipeline.createConditionLoopProcessor(валидатор, процессор);
IConditionSelectorProcessor<String, String, String> p1 = pipeline.createConditionSelectorProcessor(селектор);
}
##### StepChainSpringBootTest
```java
@RunWith(SpringRunner.class)
@SpringBootTest(classes = StepChainTestApplication.class)
public class StepChainSpringBootTest {
@Autowired
protected IPipeline pipeline;
@Test
public void testPipeline() throws Exception {
PipelineTest.testPipeline(pipeline);
}
@Test
public void testPipeline2() throws Exception {
PipelineTest.testPipeline2(pipeline);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )