Skip to content

Repository files navigation

service-support

complex service support

模块说明

名称描述
service-support-code业务支持
service-support-example业务支持示例

复杂业务支持

image

使用

//implements Handler@ServicepublicclassTokenCheckHandlerimplementsIHandler {
privatefinalstaticLoggerLOGGER = LoggerFactory.getLogger(TokenCheckHandler.class);
@Overridepublicvoidexecute() {
LOGGER.info("TokenCheckHandler-execute");
}
}
//implements Handler@ServicepublicclassRequestCheckHandlerimplementsIHandler {
privatefinalstaticLoggerLOGGER = LoggerFactory.getLogger(RequestCheckHandler.class);
@Overridepublicvoidexecute() {
LOGGER.info("RequestCheckHandler-execute");
}
}
//implements Handler@ServicepublicclassOrderQueryHandlerimplementsIHandler {
privatefinalstaticLoggerLOGGER = LoggerFactory.getLogger(OrderQueryHandler.class);
@Overridepublicvoidexecute() {
LOGGER.info("OrderQueryHandler-execute");
}
}
//register Processor extends BaseProcessor@ServicepublicclassRequestCheckProcessorextendsBaseProcessor {
//register handler chainpublicRequestCheckProcessor(OrderQueryProcessororderQueryProcessor,
TokenCheckHandlertokenCheckHandler, RequestCheckHandlerrequestCheckHandler) {
this.setProcessor(this);
//set next processor (successor processor)this.setSuccessor(orderQueryProcessor);
this.append(tokenCheckHandler);
this.append(requestCheckHandler);
}
@Overridepublicvoidconfigurate() {
}
//Override process method parallel or serial execute@Overridepublicvoidprocess() {
Iteratoriterator = this.iterator();
while (iterator.hasNext()) {
IHandlerhandler = (IHandler) iterator.next();
if (handler.executeFlag()) {
handler.execute();
}
}
this.processSuccessor();
}
}
//register Processor extends BaseProcessor@ServicepublicclassOrderQueryProcessorextendsBaseProcessor {
//register handler chainpublicOrderQueryProcessor(OrderQueryHandlerorderQueryHandler) {
this.setProcessor(this);
//set next processor (successor processor)this.setSuccessor(null);
this.append(orderQueryHandler);
}
@Overridepublicvoidconfigurate() {
}
//Override process method parallel or serial execute@Overridepublicvoidprocess() {
Iteratoriterator = this.iterator();
while (iterator.hasNext()) {
IHandlerhandler = (IHandler) iterator.next();
if (handler.executeFlag()) {
handler.execute();
}
}
this.processSuccessor();
}
}
publicclassSupportApplicationTest {
privatefinalstaticLoggerLOGGER = LoggerFactory.getLogger(SupportApplicationTest.class);
@AutowiredprivateRequestCheckProcessorrequestCheckProcessor;
//entry point@Testpublicvoidmethod() {
Assert.assertNotNull("RequestCheckProcessor is null", requestCheckProcessor);
try {
//step 1 bind requestcontextHolder.bindRequest("request");
//step 2 set contextHolder.bindResponse sucess before the end requestCheckProcessor.getProcessor().process();
contextHolder.bindResponse("response");
//step 3 return responseLOGGER.info("response : {}", contextHolder.getResponse());
} catch (Exceptione) {
Resultresult = newResult(e, ErrorCode.FAIL);
LOGGER.info("response : {}", result);
} finally {
//step 4 ThreadLocal contextHolder clearcontextHolder.clear();
}
}
}

日志

2020-09-0510:01:13.868INFO14724 --- [main] c.c.s.support.holder.ContextHolder : [ContextHolder] key=request_param,value="request"binded.
2020-09-0510:01:13.870DEBUG14724 --- [main] c.cy.service.support.core.BaseProcessor : [BaseProcessor] processoriscom.cy.service.support.processor.RequestCheckProcessor.
2020-09-0510:01:13.870DEBUG14724 --- [main] c.cy.service.support.core.BaseProcessor : [BaseProcessor] handleriscom.cy.service.support.handler.TokenCheckHandler.
2020-09-0510:01:13.870INFO14724 --- [main] c.c.s.support.handler.TokenCheckHandler : TokenCheckHandler-execute2020-09-0510:01:13.871DEBUG14724 --- [main] c.cy.service.support.core.BaseProcessor : [BaseProcessor] handleriscom.cy.service.support.handler.RequestCheckHandler.
2020-09-0510:01:13.871INFO14724 --- [main] c.c.s.s.handler.RequestCheckHandler : RequestCheckHandler-execute2020-09-0510:01:13.871INFO14724 --- [main] c.c.s.support.holder.ContextHolder : [ContextHolder] key=terminate,value=nullgetted.
2020-09-0510:01:13.871DEBUG14724 --- [main] c.cy.service.support.core.BaseProcessor : [BaseProcessor] successoriscom.cy.service.support.processor.OrderQueryProcessor.
2020-09-0510:01:13.871DEBUG14724 --- [main] c.cy.service.support.core.BaseProcessor : [BaseProcessor] handleriscom.cy.service.support.handler.OrderQueryHandler.
2020-09-0510:01:13.871INFO14724 --- [main] c.c.s.support.handler.OrderQueryHandler : OrderQueryHandler-execute2020-09-0510:01:13.874INFO14724 --- [main] c.c.s.support.holder.ContextHolder : [ContextHolder] key=terminate,value=nullgetted.
2020-09-0510:01:13.875INFO14724 --- [main] c.c.s.support.holder.ContextHolder : [ContextHolder] key=response_param,value="response"binded.
2020-09-0510:01:13.875INFO14724 --- [main] c.c.s.support.SupportApplicationTest : response : response

About

complex service support

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages