在阅读FilterSecurityInterceptor的doFilter代码时发现了这个FilterInvocation类,这个类的作用本身很简单,就是把doFilter传进来的request,response和FilterChain对象保存起来,供FilterSecurityInterceptor的处理代码调用。
如果我来写FilterSecurityInterceptor类的代码时,FilterInvocation类的出生机率会很小,一般都会直接把doFilter的参数要么保存在FilterSecurityInterceptor类的相关属性里,要么就是直接传进来用,并且不断地在各个方法中传递这些参数。由此可见springSecurity的作者这个小小的设计使得代码的可阅读性和藕合性大大降低,因为FilterInvocation类替代了这些参数在FilterSecurityInterceptor类中各处游动,,这样通过该类屏蔽了web filter过滤器环境。
转载于:https://blog.51cto.com/5148737/1613978