当前位置: 首页 > news >正文

北京建设网站制作陕西seo顾问服务

北京建设网站制作,陕西seo顾问服务,杭州建设网杭州建设工程招标平台,深圳人才网招聘官方网目录 AOP(术语)引入依赖实现步骤测试验证感谢阅读 AOP(术语) 连接点 类里面哪些方法可以增强,这些点被称为连接点 切入点 实际被真正增强的方法 通知(增强) 实际增强的逻辑部分称为通知(增强) 通知(增强&…

目录

  • AOP(术语)
  • 引入依赖
  • 实现步骤
  • 测试验证
  • 感谢阅读

AOP(术语)

  1. 连接点
    类里面哪些方法可以增强,这些点被称为连接点

  2. 切入点
    实际被真正增强的方法

  3. 通知(增强)
    实际增强的逻辑部分称为通知(增强)
    通知(增强)有多种类型

  • 前置通知–@Before
  • 后置通知–@After
  • 环绕通知–@Around
  • 异常通知–@AfterThrowing
  • 最终通知–@AfterReturning
    切面(是动作)–
    把通知(增强)应用到切入点过程

引入依赖

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

实现步骤

  1. 新建一个注解类,用于后面做切入点
@Retention(value = RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Authorization {}
  1. 建一个切面类
@Aspect
@Component
public class AuthAspect {/*** 定义了一个切点* 这里的路径填自定义注解的全路径*/@Pointcut("@annotation(com.zhuyh.studytest.spring5.aop.Authorization)")public void authornizeCut() {}@Before("authornizeCut()")public void cutProcess(JoinPoint joinPoint) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("AOP开始拦截, 当前拦截的方法名: " + method.getName());}@After("authornizeCut()")public void after(JoinPoint joinPoint) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("AOP执行的方法 :" + method.getName() + " 执行完了");}@Around("authornizeCut()")public Object testCutAround(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println("AOP拦截开始进入环绕通知.......");Object proceed = joinPoint.proceed();System.out.println("准备退出环绕......");return proceed;}/*** returning属性指定连接点方法返回的结果放置在result变量中** @param joinPoint 连接点* @param result    返回结果*/@AfterReturning(value = "authornizeCut()", returning = "result")public void afterReturn(JoinPoint joinPoint, Object result) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("AOP拦截的方法执行成功, 进入返回通知拦截, 方法名为: " + method.getName() + ", 返回结果为: " + result.toString());}@AfterThrowing(value = "authornizeCut()", throwing = "e")public void afterThrow(JoinPoint joinPoint, Exception e) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("AOP进入方法异常拦截, 方法名为: " + method.getName() + ", 异常信息为: " + e.getMessage());}
}
  1. 来一个Controller作为请求被代理的对象
@RestController
@RequestMapping("/company")
public class CompanyController {@GetMapping("/aopTest")@Authorizationpublic Object aopTest(@RequestParam String name){//远程调用System.out.println("执行接口name:" + name);// int n = 1/0;return "成功了-----" + name;}
}
  1. 启动类启动项目
@SpringBootApplication
public class StudyTestApplication {public static void main(String[] args) {SpringApplication.run(StudyTestApplication.class, args);}
}

测试验证

  1. 浏览器或者api调用工具调接口
    在这里插入图片描述
  2. 控制台打印
AOP拦截开始进入环绕通知.......
AOP开始拦截, 当前拦截的方法名: aopTest
执行接口name:zhuyh
AOP拦截的方法执行成功, 进入返回通知拦截, 方法名为: aopTest, 返回结果为: 成功了-----zhuyh
AOP执行的方法 :aopTest 执行完了
准备退出环绕......
  1. Controller加入一个异常 int i=1/0; 重启项目再次调用
    异常通知打印了 / by zero
AOP拦截开始进入环绕通知.......
AOP开始拦截, 当前拦截的方法名: aopTest
执行接口name:zhuyh
AOP进入方法异常拦截, 方法名为: aopTest, 异常信息为: / by zero
AOP执行的方法 :aopTest 执行完了
2024-01-24 16:50:10.477 ERROR 4888 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ArithmeticException: / by zero] with root causejava.lang.ArithmeticException: / by zeroat com.zhuyh.studytest.spring5.aop.CompanyController.aopTest(CompanyController.java:16) ~[classes/:na]

感谢阅读

谢谢您的陪伴! 如果您有任何问题、建议或想要了解的特定主题,请随时在评论中告诉我们。期待与您共同探索java,共同提升我们的Java开发技能!

http://www.15wanjia.com/news/54406.html

相关文章:

  • 抚州做网站百度客服中心人工在线咨询
  • 乌鲁木齐水磨沟网站建设企业营销型网站
  • 政府网站建设预算10万aso优化师主要是干嘛的
  • wordpress没有链接地址如何seo推广
  • 已购买域名 如何做网站营销策划书模板范文
  • 前端页面优化防疫管控优化措施
  • 建设银行网站登录密码seo顾问是什么职业
  • 做技术类网站赚钱吗服务营销案例
  • 网站开发方法竞价培训班
  • 做网页收集素材常用的网站有哪些长沙优化科技有限公司
  • 电商网站课程设计报告百度指数的搜索指数
  • 做网站语言学什么自己做网站的流程
  • 网站搭建wordpress专业网站推广优化
  • 网站加入百度广告联盟武汉seo排名优化公司
  • 网站logo的作用seo服务内容
  • 青岛网景互联网站建设公司长沙网站se0推广优化公司
  • 设计网站免费下载杭州网站优化企业
  • 网站没有robots.txt游戏推广员上班靠谱吗
  • 宠物出售的网站怎么做千度seo
  • html购物网站怎么做河南网站seo费用
  • 怎么在自己的网站上做漂浮链接上海网站seo优化
  • 飞凡 做电商网站鸡西网站seo
  • 日本网站开发工作seo课程培训入门
  • 怎样做jsp网站seo的课谁讲的好
  • 网站安全等级评审在哪里做如何让百度收录
  • wordpress 改网站介绍电商平台开发
  • 区总工会网站建设流程关键词搜索挖掘爱网站
  • 比较好的外贸公司百度快照优化公司
  • 如何看网站做没做推广网络推广是干什么的
  • 网站报价功能清单淘宝店铺运营推广