- 基于以上背景,考虑把十几个功能点进行拆分形成独立的功能。因此使用责任链模式实现。
- 创建一个抽象类(
ComponentAbstract.java
),每个拆分功能点继承抽象类形成子类。 - 子类创建时,需要在
@Component("1")
注解中设置类名,如果不设置咋使用默认的(小驼峰)名称 - 子类之间的数据通信使用自定义的上下文类(
Contxt.java
)子类中可以对上下文数据进行修改。(业务解耦) - 通过事先定义好的执行顺序,通过 spring 的上下文
ApplicationContext
根据子类名称循环获取子类对象,执行抽象类中handlerRequest()
方法。 - “事先定义好的执行顺序”,可以保存到数据库中项目启动的时候加载到内存,或者直接维护到Redis中。我这边直接使用接口进行演示:
http://localhost:8082/test/chain?index=2,1,3,4