背景:
攔截器是現在很多程序必須的一個東西。比如要在某個方法的前后做些處理,在一些特定的情況下可能會導致大量的重復代碼。而假如我們擁有了類似攔截器一樣的東西,那我們就可以任意在自己希望的方法的執行前后做我們自己的處理,比如日志,取得參數或者是事務等。
實現:
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 © 李嵐