您的位置:首页 > 编程语言 > Java开发

SpringBoot中AOP的配置

2016-12-16 18:23 483 查看
摘要: 网上大量关于SpringBoot中配置AOP的文章,尝试下来都无效,经查阅官方文档完成了

面向切面编程算是spring中的高阶应用,常见的日志采集,支付网关功能都有面向切面的工程思想,它就相当于进入地铁站时,那个等待我们的刷卡机一样,所有人乘地铁里必须经过刷卡机,它会验证你卡里的钱够不够,普通用户卡里钱不够不让过,地铁工作人员的员工卡随意过。

面向切面编程时也存在这道门,就是所谓的关注点(pointcut又称切入点,我习惯称之为关注点),类似于上面的刷卡机,有了这关注点,我们就可以围绕这个关注点做一些我们想做的事情,执行一些验证操作,类似于上面的判断用户身份,卡内金额,执行的动作可以放在关注点的某个时机去做,如@Around @Before @After,下面就详细列举一下AOP的配置方式

1.添加aop依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2.添加依赖之后,要开启AOP

@EnableAutoConfiguration
@EnableAspectJAutoProxy
@ComponentScan(basePackages = "org.sun.spring")
/***
*EnableAspectJAutoProxy开启切面编程
*ComponentScan指定包之后,SpringBoot会自动扫描该包下面的功能,如Controller,Model,Aspect功能
*org.sun.spring是我的包名,各位看客自行修改成自己的package name
*/
public class Bootstrap {

public static void main(String[] args) {
SpringApplication.run(new Object[] {Bootstrap.class}, args);
}

}

3.开始写代码进行切面编程

package org.sun.spring.aspect;

import org.apache.log4j.Logger;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class RequestLogAop {

private final Logger logger = Logger.getLogger(getClass());

@Pointcut("execution( * org.sun.spring.controller.*.*(..))")
public void pointCutAt() {

}

@Before("pointCutAt()")
public void beforeAction() {
logger.fatal("在处理请求前,必须经过我!!!");
}

}

上面就是最简洁的AOP案例了,学会使用之后,体会一下整个注解的流程

工程包:https://github.com/Freshman585/spring-boot-example
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring boot aop pointcut