第一次写aop的Dome,还有很多不了解,这里项目里有用到,就个人在这里对这个aop和annotation作出一个总结,有不对的地方请指出。望见凉!
首先自定义一个注解:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CheckBwUserLogin
{
}
target:声明注解的用的
Retention:注解的生命周期,一般开发都是用RetentionPolicy.RUNTIME
Documented:这个注释是由 javadoc记录的
第二写切面:
@Aspect
@Component
public class AopCheckBwUser {
@Autowired
private BwUserService bwUserService;
@Autowired
private HttpServletRequest request;
@Around("@annotation(com.jeesite.modules.bw.annotation.CheckBwUserLogin)")
public Object checkAccessRight(ProceedingJoinPoint jp) {
XXXXXXX
result = jp.proceed(arguments);
return Object
}
}
aspect:声明这个类为一个切面类
component :这个切面交给spring管理
around:增加类型,常用还有before,after
ProceedingJoinPoint:这个参数主要是用来调用目标方法
注意:这里的返回类型必须是目标的返回类型
第三,使用,在目标方法添加该注解。
@CheckBwUserLogin @RequestMapping(value = "/updatePhone")
博主首次写AOP示例,对项目中用到的AOP和注解进行总结。介绍了自定义注解,包括target、Retention、Documented的作用;还说明了写切面的要点,如声明切面类、将切面交给Spring管理、增加类型及参数使用等,最后提到在目标方法添加注解来使用。
905

被折叠的 条评论
为什么被折叠?



