背景:
拦截器是现在很多程序必须的一个东西。比如要在某个方法的前后做些处理,在一些特定的情况下可能会导致大量的重复代码。而假如我们拥有了类似拦截器一样的东西,那我们就可以任意在自己希望的方法的执行前后做我们自己的处理,比如日志,取得参数或者是事务等。
实现:
1.首先定义一个业务接口
2 定义一个拦截器接口
3 实现一个默认的拦截器
4 实现一个Action接口的包装器,这里实现了拦截器的核心方法
5 如何使用?
可以改进的地方:
1) 可以使用动态代理,这样就可以对任意对象使用拦截器了。而不仅仅是Action接口
2) 拦截器可以通过一个配置文件读取,比如一个XML文件,而不是现在这样写死在客户端代码中。Digester给我们提供了解析XML的帮助3)可以使用Commons Collections 里的ResettableIterator,这样每次Iterator就可以reset了,不然我们只有每次都使用新的ActionInvocation
posts - 7, comments - 23, trackbacks - 0, articles - 0
Copyright © 李岚