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

网站建设自查工作做网站用什么语言编写

网站建设自查工作,做网站用什么语言编写,网站建设第三方平台,电商网站如何优化目录 一、Spring AOP 是什么#xff1f; 二、学习AOP 有什么作用#xff1f; 三、AOP 的组成 3.1、切面#xff08;Aspect#xff09; 3.2、切点#xff08;Pointcut#xff09; 3.3、通知#xff08;Advice#xff09; 3.4、连接点 四、实现 Spring AOP 一个简…目录 一、Spring AOP 是什么 二、学习AOP 有什么作用 三、AOP 的组成 3.1、切面Aspect 3.2、切点Pointcut 3.3、通知Advice 3.4、连接点 四、实现 Spring AOP 一个简单demo 4.1、添加 Spring AOP  框架依赖 4.2、定义切面 4.3、定义切点 4.3.1、切点表达式说明 4.4、定义通知 4.5、实现原理 ​编辑   五、Spring AOP 实现原理 5.1、原理概述 5.2、织入 5.3、动态代理 5.4、面试题DK 和 CGLIB 实现的区别 一、Spring AOP 是什么 AOP 就是面向切面的编程 是一种思想是对某一类事情的集中处理。 例如登陆权限的检验检测当前用户是否登录在学习 AOP 前我们会将这样一个检测机制封装成一个方法在需要检测的地方调用该方法即可但想象以下首先如果这个方法有 1000 个地方要进行调用 那么你去一个一个写调用函数很累其次一旦这个登陆检查方法需要修改比如增加一个参数那么你就需要修改 1000 方法调用的参数... 但如果你会 AOP 后我们只需要在某处配置一下就可以实现用户的登录检测不需要每一个方法中都写登录检验的调用方法啦  AOP 是一种思想而 Spring AOP 是一个框架提供了对 AOP 思想的实现类似于 IoC 和 DI 的关系。 二、学习AOP 有什么作用 例如刚刚我们所讲到的登录检测机制这一个方法一旦需要调用的地方多了不仅写起来麻烦维护起来成本也是很高的所以对于这种功能统一且使用地方较多的功能就可以考虑 AOP 来进行统一的处理 例如以下常见的使用场景 统一登录检测机制。统一方法的执行时间统计。统一的返回格式设置。统一异常处理。事务的开始和提交。Ps AOP 是对某一功能进行的统一处理大大降低了代码维护的成本所以可以说 AOP 是 OOP 的补充和完善~ 三、AOP 的组成 3.1、切面Aspect 切面在程序中就是对某一功能进行统一处理的类 这个类里包含了很多方法这些方法就是由 切点 和 通知 组成。 3.2、切点Pointcut 用来进行主动拦截的规则配置。 这里拦截的是什么过程是什么样的呢就是对用户向服务器发送的请求进行拦截检测用户的操作是否符合预期发现问题并统一处理的过程如下图 3.3、通知Advice 通知就是 AOP 的具体执行动作。具体的在程序中被拦截后会触发一个具体的动作就是通知中具体实现的业务代码。 在 Spring 中可以在方法上使用以注解设置方法为通知方法被拦截后满足条件就会调用通知方法 前置通知Before执行 目标方法被拦截的方法之前执行的方法。后置通知After执行了目标方法之后执行的方法。返回之后通知AfterReturning目标方法执行了返回数据return时执行的方法。抛异常后通知AfterThrowing在执行目标方法出现异常时执行的方法。环绕通知Around在目标方法执行的周期范围内执行之前执行中执行后都可以执行的方法Ps如果已经有了前置和后置通知再使用环绕通知那么周期范围就在前置通知之前 ~ 后置通知之后。3.4、连接点 会触发 AOP 规则的所有的点所以请求。 四、实现 Spring AOP 一个简单demo 4.1、添加 Spring AOP  框架依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependencyPs 1.创建 Spring Boot 项目时是没有 Spring AOP 框架可以选择的。 2.添加  Spring AOP 框架可以去中央仓库值得注意的是要选择 Spring Boot 对应的 AOP 而不是 Spring 对应的 AOP。 3.最好选择 Spring Boot 对应版本的  AOP 以上就是 2.7.9版本。 4.2、定义切面 使用 Aspect 注解修饰类告诉框架是一个切面类。 import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.stereotype.Component;Aspect //告诉框架我是一个切面类 Component public class UserAspect {} 4.3、定义切点 使用 Pointcut 修饰一个方法它不需要由方法体。方法名就是起到一个标识的作用标识通知方法具体指的是哪一个切点切点可能有多个。 import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component;Aspect //告诉框架我是一个切面类 Component public class UserAspect {/*** 切点配置拦截规则*/Pointcut(execution(* com.example.demo.controller.UserController.*(..)))public void pointcut() {}} 4.3.1、切点表达式说明 AspectJ ⽀持三种通配符如下 * 匹配任意字符只匹配⼀个元素包类或⽅法⽅法参数.. 匹配任意字符可以匹配多个元素 在表示类时必须和 * 联合使⽤。 表示按照类型匹配指定类的所有类必须跟在类名后⾯如 com.cad.Car ,表示继承该类的 所有⼦类包括本身 切点表达式由切点函数组成其中 execution() 是最常⽤的切点函数⽤来匹配⽅法语法如下注意使用空格进行分割 execution(修饰符 返回类型 包.类.⽅法(参数) 异常) 其中修饰符和异常可以省略具体含义如下 4.4、定义通知 使用通知方法中的五个注解其中前置通知、后置通知、环绕通知最常用那么以下代码我将用这三个注解来举例 import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component;Aspect //告诉框架我是一个切面类 Component public class UserAspect {/*** 切点配置拦截规则*/Pointcut(execution(* com.example.demo.controller.UserController.*(..)))public void pointcut() {}/*** 前置通知*/Before(pointcut())public void beforeAdvice() {System.out.println(执行了前置通知);}/*** 后置通知*/After(pointcut())public void aftereAdvice() {System.out.println(执行了后置通知);}/*** 环绕通知* param joinPoint* return* throws Throwable*/Around(pointcut())public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println(进入了环绕通知~);Object obj null;obj joinPoint.proceed();System.out.println(退出了环绕通知~);return obj;}}执行结果如下 4.5、实现原理 五、Spring AOP 实现原理 5.1、原理概述 Spring 的切面是代理类实现的包裹了目标对象也就是说用户只能先通过代理类进行校验如果没有问题才会进一步访问到目标对象。 5.2、织入 织入简单理解就是代理生成的时机一般情况下在 Spring AOP 动态代理的植入时机是程序的运行期。 5.3、动态代理 Spring AOP 是建立在动态代理的基础上因此 Spring 对 AOP 的支持局限于方法级别的拦截。 Spring AOP 支持 JDK Proxy 和 CGLIB 方式实现动态代理。默认情况下实现了接口的类使用 AOP 会基于 JDK 生成代理类没有实现接口的类会基于 CGLIB 生成代理类。 JDK 和 CGLIB 底层都是基于反射实现的。、 5.4、面试题DK 和 CGLIB 实现的区别 1. JDK 实现要求被代理类必须实现接⼝之后是通过 InvocationHandler 及 Proxy在运⾏ 时动态的在内存中⽣成了代理类对象该代理对象是通过实现同样的接⼝实现类似静态代理接⼝实现的⽅式只是该代理类是在运⾏期时动态的织⼊统⼀的业务逻辑字节码来完成。 2. CGLIB 实现被代理类可以不实现接⼝是通过继承被代理类在运⾏时动态的⽣成代理类对象。
http://www.hkea.cn/news/14571907/

相关文章:

  • 信创网站wordpress首页调用页面文章的内容
  • 启航做网站怎么样不花钱网站怎么做推广
  • 手机网站开发教程建e网模型
  • 古风网站建设模板下载宁波网站优化体验
  • 响应式网站设计的优点长沙正规关键词优化价格从优
  • 苏州网站建设系统方案上海虹口建设局官方网站
  • 网站建设相关费用预算推广微信官网网站
  • 湛江建设部网站erp软件有哪些
  • 一般做网站需要什么框架福田瑞沃售后服务电话
  • 汕头澄海网站建设杰奇网站地图怎么做
  • 济宁天元建设集团有限公司关键词优化简易
  • 专业网站建设公司地址网站对企业的好处
  • 免费找答案的网站找网站做网站做网站
  • 慈溪市住房和城乡建设局网站建站至尊
  • 网站编程设计如何写备注新建网址
  • 户外拓展公司网站开发mir设计公司官网
  • 长春品牌网站建设公司网站名注册
  • 中国购物网站大全排名图片免费模板
  • 上海简站商贸有限公司网络空间设计说明怎么写
  • 四川专业网站建设费用招聘页面设计模板
  • 上海网站建设服务分录乡村网络建设方案
  • 在哪里找个人做网站的申请中网可信网站
  • 河南省建设厅网站师林峰个人网页设计作品简约
  • 建设工程协会网站查询系统济宁专业建网站
  • 装饰装修网站大全国家工商企业查询
  • 交通设施东莞网站建设免费推广的网站
  • 网站制作公司业务员重庆网站建设解决方案
  • 淄博机关建设网站大连模板网站制作哪家好
  • 沈阳做网站 熊掌号平台的重要性
  • phpcms 网站标题江西省建设厅网站官网