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

中山城市建设集团网站网站建设设计基础

中山城市建设集团网站,网站建设设计基础,临海建设银行网站,建展公司概念 这里需要提前了解什么是Spring的AOP#xff08;Aspect Oriented Programming#xff09;。是在OOP#xff08;面向对象#xff09;思想的一种拓展思想。简单来说就是将某个代码块嵌入到其它的代码块中。笔者先前学Spring也有学什么IoC啊AOP啊#xff0c;但实际上没有…概念 这里需要提前了解什么是Spring的AOPAspect Oriented Programming。是在OOP面向对象思想的一种拓展思想。简单来说就是将某个代码块嵌入到其它的代码块中。笔者先前学Spring也有学什么IoC啊AOP啊但实际上没有用过、就那听过学过没啥用的。。没会儿就忘记了。那种也就是个了解好像知道是个什么事儿当时还特地去背关于AOP的那几个专有名词现在想想有点好笑。 不过还是需要提前巩固知道几个词。看完了下面的这三个词的用法就开始进入模拟实战。 切面(Aspect)由切点和通知组成。即使用Aspect注解的类 切点(Pointcut)可以限定访问修饰符、类全限定名、方法名和参数类型甚至用于匹配注解 通知(Advice)想要嵌入到其它代码块的代码块。其中包括五种类型。         Before(目标方法执行前执行)         After(目标方法执行后执行         AfterReturning(目标方法返回结果后不出现异常才执行)         AfterThrowin(出现异常才执行)         Around(以上都包括) 引入依赖 !-- Spring Boot -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency!-- 简化开发 -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional /dependency!-- AOP -- dependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactId /dependency 创建注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface Log {/*** 描述** return {String}*/String value();} 业务代码 Slf4j RestController RequestMapping(/log) public class LogController {Log(AOP测试)GetMapping(/aspect)public void aspect() {log.info(进入AOP测试方法);for(int i 0; i 10; i) {log.info(执行业务逻辑{}, i);}log.info(结束AOP测试方法);}} 编写切面 有切点 Slf4j Component Aspect public class LogAspect {Autowiredprivate ApplicationEventPublisher publisher;/*** 切点* 这里面主要掌握两个东西* 1、如果使用注解的话就需要获取注解的类全限定名* 2、执行的execution表达式这是比较重要掌握的 这里面有四个参数 需要知道的是*也可以表示前缀或者后缀 和SQL中的%类似* 一、方法的访问权限修饰符public/protected/default/private* 二、方法的返回值类型* 三、类的全限定名包名.类名* 四、*(..)的第一个表示方法名括号内表示参数而两个点表示接收任何参数类型*/Pointcut(annotation(com.chf.annotation.Log) execution(public * com.chf.controller.*Controller.*(..)))public void logPointcut() {}SneakyThrowsAround(logPointcut())public Object around(ProceedingJoinPoint point) {// 获取注解完后解析其内部的属性MethodSignature signature (MethodSignature) point.getSignature();log.info(获取注解,{}, signature); // void com.chf.controller.LogController.aspect()Method method signature.getMethod();log.info(获取注解的方法,{}, method);// public void com.chf.controller.LogController.aspect()Log logAnnotation method.getAnnotation(Log.class);log.info(获取使用注解的value参数,{}, logAnnotation.value()); // AOP测试// 发送异步事件Long startTime System.currentTimeMillis();Object o;try {o point.proceed();} finally {// 这里可以使用发布订阅模式发布异步事件 至于使用哪一种发布订阅模式就看业务场景了Long endTime System.currentTimeMillis();publisher.publishEvent(new LogEvent(事件处理的时间是: (endTime - startTime) ms));}return o;} } 无切点 Slf4j Component Aspect public class LogAspect {Autowiredprivate ApplicationEventPublisher publisher;SneakyThrowsAround(annotation(logAnnotation) execution(public * com.chf.controller.*Controller.*(..)))public Object around(ProceedingJoinPoint point, Log logAnnotation) {// 获取注解完后解析其内部的属性MethodSignature signature (MethodSignature) point.getSignature();log.info(获取注解,{}, signature); // void com.chf.controller.LogController.aspect()Method method signature.getMethod();log.info(获取注解的方法,{}, method);// public void com.chf.controller.LogController.aspect()Log logAnnotation method.getAnnotation(Log.class);log.info(获取使用注解的value参数,{}, logAnnotation.value()); // AOP测试// 发送异步事件Long startTime System.currentTimeMillis();Object o;try {o point.proceed();} finally {Long endTime System.currentTimeMillis();publisher.publishEvent(new LogEvent(事件处理的时间是: (endTime - startTime) ms));}return o;} } 测试 不了解Spring的发布订阅模式可以看这篇博文https://blog.csdn.net/m0_65563175/article/details/131899828?spm1001.2014.3001.5501
http://www.w-s-a.com/news/826065/

相关文章:

  • 网站开发流程莆田wordpress点播收费
  • 网站未及时续费浙江台州做网站的公司有哪些
  • 二级域名做网站好不好河源建网站
  • 公司网站的作用意义维护建设管理天津平台网站建设费用
  • 建设部网站如何下载国标规范上海影视公司
  • 企业官方网站地址通了网站建设
  • 专题网站可以做什么怎么做网站滑动图片部分h5
  • 什么是网站建设外包html 门户网站
  • 资阳市建设局网站微信开发公司
  • wap建站程序源码可不可以异地建设网站
  • 优秀企业网站的特点网站标签名词
  • 建材网站建设案例淄博网站建设培训
  • 纯代码添加wordpress网站底部导航宝塔自助建站源码
  • 网站设计技术有哪些?青岛网站建设工作室
  • 网站怎样建设才叫人性化宣传
  • 济南网站制作方案做淘客网站备案
  • h5企业网站只做做php门户网站那个系统好
  • 长春阿凡达网站建设建网站如果不买域名别人能不能访问
  • 佛山网站建设策划东莞建设工程交易网
  • 制作公众号网站开发濮阳建网站
  • 屏南网站建设兼职旅游网站建设方案两百字
  • 最牛的网站建设网站建设的规模设想
  • 马云之前做的网站企业形象策划
  • ie9网站后台编辑器代发qq群发广告推广
  • 百度怎样建立一个网站嘉兴高端网站定制
  • 国外设计网站怎么进入电子网站建设前台设计
  • 中方建设局网站济南网站建设公司电子商务网站
  • 如何做网站编辑 沒技术济南企业做网站推广网站
  • 网站模板 百科北京中高风险地区最新名单最新
  • 高校网站建设前言做公众号的公司是什么公司