拦截器之自定义注解拦截器(二)
自定义注解拦截器
上篇我们讲到拦截器的使用,在实际的开发工作中,我们可能会遇到各种各种各样不同的需求功能。所以我们对技术的使用也需要不断的学习和更新,在什么样的场景业务之下使用什么样的技术选择是我们应该要做到的。当然啦,我们不是大牛,我们是暗夜中的小狼,不断的学习和积累,总有同一天会成为狼王的啦……牛逼到此为止,进入正题……
类似用户权限的需求,有些操作需要登录,有些操作不需要,可以使用过滤器filter,但在此使用过滤器比较死板,如果用的话,就必须在配置文件里加上所有方法,而且 不好使用通配符。如果使用上篇(拦截器(一))的方法,无法使用通配符的方式进行过滤方法拦截,所以,这种情况下,我们考虑使用自定义注解拦截器——只需要在需要权限控制的方法上添加一个注解,就可以了。这样就完美解决了,上面问题的尴尬局面……
代码实现如下:
1.创建注解类(注意需要使用jdk8里才会支持此注解-这个没有验证,我使用的是jdk8-大家可以自行验证一下)
定义只有Login才能访问注解方法 ---默认是true
2. 创建拦截器类-AnotationInterceptor
第二个红框内是判断当前被拦截的方法头上是都包含注解
第三个红框是获取当前方法的自定义注解拦截器的注解
自定义注解拦截器默认是true--注意这里其实只是一个注解标识。并不是在方法上添加这个自定义注解,代表用户已登录或者未登录。而是,这个方法需要登录才能进入--然后根据标识,进入到拦截器不同的分支执行相关的业务逻辑
3.controller中的方法如下添加自定义注解----同时在spring-mvc.xml中配置该方法的拦截器拦截配置即可