今天之所以再拿起来讲讲,是因为这里面涉及到的知识点,其实挺多的,可能设计模式都会有一个通病:
那就是如何将业务bean统一交给Spring管理,否则无法引用。接下来给大家举个例子。今天我想搞一个讨论会,大家尝试解决 并在评论区我们讨论下,谁的方案更好。 我也学习下,因为我的方案不是最好的。所以先不粘贴出来。希望大家理解
抛出问题
比如我们一个下单业务(怎么简单怎么来):
第一步:接口参数校验
第二步:创建支付订单
第三步,请求支付服务获取支付信息
最终方案是要用责任链的模式处理这几个业务块,这样达到解藕目的,新的业务请求再进来,只需要加类就行,比如到时候要来个减库存操作。直接加类即可。不影响参数校验模块,创建订单模块,只需要按照相应顺序链式调用即可,一传二,二传三,最终执行完成
好,责任链的东西 就说这么多,本节重点是如何解决bean加载问题。
下面Hanler类是责任链处理类,OrderPayCheckHandler 是参数校验类。OrderPayResultHandler是业务处理完毕类
代码案例:
上面这段代码很好理解,那就是处理这个链式调用的。下面是开始校验模块
模拟调用:
问题点:
OrderPayCheckHandler类中无法引入OrderPayService,报空指针
这就是今天要说的 ,那就是abstract 处理流程中 无法注入bean,大家有没有好的解决方案。在你们的实战中是怎么解决的?欢迎大家评论区交流。我第二天会把我的方案给放出来。
领取专属 10元无门槛券
私享最新 技术干货