SpringBoot配置面向切面编程(SpringBoot项目配置5)

SpringBoot支持Spring中的注解AOP配置,而且配置简单只需要几步即可

1.导入SpringBoot与AOP集成jar包

在pom.xml文件中加入

 <!--spring boot与AOP集成jar包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

2.AOP注解

@Aspect用在类上,代表这个类是一个切面

@Before用在方法上代表这个方法是一个前置通知

@After用在方法上代表这个方法是一个后置通知

@Around用在方法上代表这个方法是一个环绕通知

@Configuration用于定义配置类

3.开发AOP类和方法

(1)开发一个前置AOP

@Aspect
@Configuration
public class BeforeAspect {
    /*
    * 前置通知方法
    * */
    @Before("execution(* com.baizhi.service.*.*(..))")
    public void before(JoinPoint joinPoint){
        System.out.println("目标方法执行之前执行");
    }
}

(2)开发一个后置AOP

@Aspect
@Configuration
public class AfterAspect {
    @After("execution(* com.baizhi.service.*.*(..))")
    public void before(JoinPoint joinPoint){
        System.out.println("目标方法执行之后执行");
    }
}

(3)开发一个环绕AOP

@Aspect
@Configuration
public class AroundAspect {

    @Around("execution(* com.baizhi.service.*.*(..))")
    public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        System.out.println("around before");
        Object proceed = proceedingJoinPoint.proceed();
        System.out.println("方法名:"+proceedingJoinPoint.getSignature().getName());
        System.out.println("目标参数:"+proceedingJoinPoint.getArgs());
        System.out.println("目标对象:"+proceedingJoinPoint.getTarget());
        System.out.println("目标对象:"+proceedingJoinPoint.getThis());
        System.out.println("around after");
        return proceed;
    }
}

 

posted @ 2018-07-03 17:49  henu小白  阅读(485)  评论(0编辑  收藏  举报