springboot如何新建aop切面
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,springboot如何新建aop切面,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。springboot引入AOP主要是分为以下几步:引
千家信息网最后更新 2025年02月05日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安全错误
数据库的锁怎样保障安全
普陀区新时代软件开发加工厂
易语言数据库实时更新
怎么查数据库软件版本信息
软件开发开会如何发言
学网络安全维护工程师难
重庆学习软件开发怎样收费
网络技术基础及基础架构
亳州点餐系统软件开发公司
蓝颢网络技术 哔哩哔哩
哪个服务器不需要密码
软件开发新人任务完成不了
注册软件开发外包公司
软件开发流程 系统验收
数据库pwd怎么改密码
网络安全自检方案
邮件传输服务器
代码生成器属于软件开发什么工具
开发者分布式云服务器
资威java软件开发招聘
问道服务器列表安装包
高通的下一代网络技术路由器
服务器机房维保报价怎么收费
福州app安卓软件开发
网络安全专业学习计划
微信类软件开发费用
莱芜app软件开发多少钱
服务器架构师
网络安全风险与对策
清华科技信息与互联网
和平精英高级服务器是什么