java自定义注解 http://my.oschina.net/OkSerIous/blog/402718
深入理解Java:注解(Annotation)自定义注解入门 http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html

http://chenjumin.iteye.com/blog/454459

Pattern属性符: (.) 符合任何单一字符  (+)符合前一个字符一次或多次  (*)符合前一个字符零次或多次.

本自定义注解的作用:用于控制类方法的调用,只有拥有某个角色时才能调用。

java内置注解
1、@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:
ElemenetType.CONSTRUCTOR   构造器声明
ElemenetType.FIELD   域声明(包括 enum 实例)
ElemenetType.LOCAL_VARIABLE   局部变量声明
ElemenetType.METHOD   方法声明
ElemenetType.PACKAGE   包声明
ElemenetType.PARAMETER   参数声明
ElemenetType.TYPE   类,接口(包括注解类型)或enum声明

2、@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
RetentionPolicy.SOURCE   注解将被编译器丢弃
RetentionPolicy.CLASS   注解在class文件中可用,但会被VM丢弃
RetentionPolicy.RUNTIME   VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

Spring自定义注解
一、注解类源码

二、Person类的源码。该类使用了自定义注解。

三、通过环绕通知对方法进行拦截,只有当角色匹配时,才能执行方法。

四、Spring配置

注意:
1.监视annotationTest和save开头的方法。

2.监视所有com开头的方法,包括com.XXX.XXX……()方法。
Pattern属性符:
(.) 符合任何单一字符  (+)符合前一个字符一次或多次  (*)符合前一个字符零次或多次

spring 拦截器 spring自定义注解,访问HttpServletRequest等方式http://blog.csdn.net/zhuyangxing/article/details/18796091
最近项目里加上了用户权限,有些操作需要登录,有些操作不需要,之前做项目做权限,喜欢使用过滤器,但在此使用过滤器比较死板,如果用的话,就必须在配置文件里加上所有方法,而且 不好使用通配符。所以想了想,之前在人人用过的一种比较简单灵活的权限判断,是采用Spring 的 methhodInterceptor拦截器完成的,并且是基于注解的。
现在自己写了一套。大概是用法是这样的:

我是在Spring mvc 的controller层的方法上拦截的,注意上面的@LoginRequired 是我自定义的注解。这样的话,该方法被拦截后,如果有该 注解,则表明该 方法需要用户登录后才能执行某种操作,于是乎,我们可以判断request里的session或者Cookie是否包含用户已经登录的身份,然后判断是否执行该方法;如果没有,则执行另一种操作。
————————————————————————-
下面是自定义注解的代码:

—————————————————————————–
下面是自定义的方法拦截器,继续自aop的MethodInterceptor

————————————————————————
配置文件: