springboot如何新建aop切面
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,springboot如何新建aop切面,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。springboot引入AOP主要是分为以下几步:引
千家信息网最后更新 2024年11月28日springboot如何新建aop切面
springboot如何新建aop切面,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
springboot引入AOP
主要是分为以下几步:
引入相关的依赖
新建一个切面
编写相应的切点和通知
引入相关的依赖
除了web的包之外,还需要引一个aop相关的starter相关的包
compile group: 'org.springframework.boot', name: 'spring-boot-starter-aop', version: '2.2.0.RELEASE'
新建切面
通俗来讲,一个切面有两个部分组成
1是对哪些方法做修改,加强,注入等等,都是一个意思
2是对这些方法做什么样的修改,执行前,执行后,执行前后等等
/**
* 声明一个切面,只用加一个@Aspect注解就可以了
* 还有个注解@Component是声明这个类为Spring的bean
*/
@Aspect
@Component
public class TestAspect {
/**
* 切面的组成部分之一,告诉程序要对哪些方法进行操作
* 在本DEMO中直接指定了一个方法,推荐后续用注解的方式去找方法
* 在现在注解盛行的时代,这样根据方法名去找方法的用处已经不多了
* 更多的是通过某个注解去找到对应的方法,后续也会有DEMOb出来
*/
@Pointcut("execution(public * cloud.javastudy.demo.controller.TestController.testAspect(..))")
public void testPointcut(){}
/**
* 对找到的方法进行修改
* 有@Around,对方法执行前后进行修改
* 有@Before, 在方法执行前进行修改
* 有@After, 在方法执行后进行修改
* 有@AfterReturning, 在方法返回后进行修改
* 有@AfterThrowing, 在方法抛出异常后修改
* 常用的是@Around,常用于对方法体加 Try-catch,对方法执行计时,对方法入参,返回做日志记录等等
*/
@Around("testPointcut()")
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("before pointcut");
Object proceed = joinPoint.proceed();
System.out.println("after pointcut");
return proceed;
}
}
被测试的方法
package cloud.javastudy.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
/**
* 测试被切面的方法
* @return
*/
@RequestMapping("test/testAspect")
public String testAspect(){
System.out.println("in method");
return "OK";
}
}
结果输出:
AOP是spring的两大特性之一,相对比于以前spring用xml复杂的声明,在springboot中使用aop只用引一个依赖,新建一个切面类就可以解决了, 简单的demo很简单,真正使用还是要好好琢磨下,如在使用Around时,复杂的逻辑要记得新开一个子线程来处理,我就曾经在记录redis的key命中时,因为是没有异步记录,导致redis出奇的慢,加油吧少年!
看完上述内容,你们掌握springboot如何新建aop切面的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
方法
切面
注解
更多
面的
复杂
内容
部分
问题
测试
出奇
通俗
束手无策
为此
两个
个子
切点
原因
对此
少年
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发流程demo
西安云师港互联网科技有限公司
国内领先的互联网科技企业
疫情影响网络安全吗
网络安全性分析
辽宁省网络技术安全条例
服务器性能管理软件
三级网络技术有编程题
打开系统提示找不到数据库配置
vfp数据库设计展示
查询该数据库是否允许外链
秋日森林第一服务器
数据库语句执行软件
银行网络安全的待遇
英泰数据库教育
qq使用定位服务器地址
开题报告网络技术
平凡软件开发
2021网络安全提供商创新
北京erp软件开发制作
计算机网络安全第二版
快播网络安全电影
广州蓝谷网络技术有限公司
管理存储和服务器安装
山东服务器回收
网络安全风险评估报告公安
什么是云服务器的硬件
互联网科技数码行业
丰城网络安全手抄报
理解地理信息软件开发