我这里要演示的就是一个简单的AOP编程的方式,其中使用了自定义注解和正常的切面
直接上代码
1.自定义注解,具体每个注解的解释自己百度
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {
String value() default "";
}
2.定义切面类
使用@Aspect注解的类,才能定义切面以及切面@Pointcut的增强方法@before,@After@around...
@Aspect
@Configuration
public class SysLogAspect {
/**
* 这里我们使用注解的形式,只要使用了@SysLog的注解都会调用这个方法,而这个方法是个切面方法,
* 会被增强
* 当然,我们也可以通过切点表达式直接指定需要拦截的package,需要拦截的class 以及 method
* 切点表达式: execution(...)
*/
@Pointcut("@annotation(com.wexin.aop.SysLog)")
public void logPointCut1(){}
/**
* 这里就是正常的切面方法,指定到方法和参数,
* 第一个*通配 权限修饰符和返回参数
*