赞
踩
1、什么是Aop?
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2、Aop常用在什么地方?
AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等
3、使用SpringBoot框架实现AOP.
(1) 新建一个SpringBoot项目
(2)ResultAop为需要增加的具体方法,test为需要被扩展的程序。下面为ResultAop相关代码。
@Aspect @Configuration public class ResultAop { @Pointcut(value="execution(* com.example.Controller..*.*(..))") public void brokerAspect(){ } @Before("brokerAspect()") public void before(JoinPoint joinPoint){ System.out.println("这是前置通知"); System.out.println("正在执行的目标类是: " + joinPoint.getTarget()); System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName()); } @After("brokerAspect()") public void after(JoinPoint joinPoint){ System.out.println("这是后置通知"); System.out.println("正在执行的目标类是: " + joinPoint.getTarget()); System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName()); } @Around("brokerAspect()") public Object around(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println("这是环绕通知"); System.out.println("正在执行的目标类是: " + joinPoint.getTarget()); System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName()); Object proceed = joinPoint.proceed(); return proceed; } }
(3)test类相关代码
@RestController public class test { @RequestMapping("/test") public void test(){ System.out.println("这是Controller里面的方法"); } }
(4)输出结果为:
可以看出对Controller里面的方法做了具体增强。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。