Java:诸如Servlet过滤器之类的用于前后处理的设计模式

时间:2019-05-26 14:42:31

标签: java design-patterns

在确定设计模式时需要帮助。要求如下:

  1. 必须提供支持方法调用前的预处理的功能。任何人都可以扩展API并添加预处理器
  2. 与上述类似,但需要后期处理

我能想到的最接近的示例是Servlet过滤器,该过滤器可用于进行预处理和后期处理,但是我想在不会部署在服务器上的简单Java应用程序中进行处理

1 个答案:

答案 0 :(得分:1)

就设计模式而言,您可以使用Proxy设计模式,该功能可以在处理之前和之后进行处理。您可以检查cglib动态代理,也可以了解有关AOP(面向方面​​的编程)的更多信息,以了解方法的前后操作。仍然,如果您只想通过核心Java实现相同的目标,则可以使用带有调用处理程序的JDK动态代理。我提供了完整的示例,请仔细阅读。

使用动态代理的AOP:https://github.com/debjava/aopusingjdkdynamicproxy

预处理: https://github.com/debjava/aopusingjdkdynamicproxy/blob/master/src/main/java/com/ddlab/rnd/aop/BeforeHandler.java

后处理: https://github.com/debjava/aopusingjdkdynamicproxy/blob/master/src/main/java/com/ddlab/rnd/aop/AfterHandler.java

除此之外,您可以参考注释。