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

长沙企业网站建设收费中国建设信息网官网八大员证查询

长沙企业网站建设收费,中国建设信息网官网八大员证查询,网站开发是哪个,专业开发app公司01.AOP技术是对于面向对象编程#xff08;OOP#xff09;的补充。是按照OCP原则进行的编写#xff0c;(ocp是修改模块权限不行#xff0c;扩充可以) 02.写一个例子#xff1a; 创建一个新的java项目#xff0c;在main主启动类中#xff0c;写如下代码。 package com.co…01.AOP技术是对于面向对象编程OOP的补充。是按照OCP原则进行的编写(ocp是修改模块权限不行扩充可以) 02.写一个例子 创建一个新的java项目在main主启动类中写如下代码。 package com.company;interface mainService{void send(); } class DefaultServiceImpl implements mainService {Overridepublic void send() {System.out.println(hello);} } public class main {public static void main(String[] args){DefaultServiceImpl defaultServicenew DefaultServiceImpl();defaultService.send();} } 一个接口一个接口实现类一个main主方法。 03.如果要实现显示接口实现类中的send方法运行的时间一般的就在实现类中的send方法前后添加system.currenttimeMills Overridepublic void send() {System.out.println(start:System.currentTimeMillis());System.out.println(hello);System.out.println(end:System.currentTimeMillis());}04.如果在项目的发布后或者以后接口实现类以后代码多如何去修改项目呢实现显示运行时间呢 方法一继续写一个子类去继承接口实现类。 class DefaultServiceImpl implements mainService {Overridepublic void send() {// System.out.println(start:System.currentTimeMillis());System.out.println(hello);// System.out.println(end:System.currentTimeMillis());} }class logDefaultImpl extends DefaultServiceImpl {Overridepublic void send() {System.out.println(start:System.currentTimeMillis());System.out.println(hello);System.out.println(end:System.currentTimeMillis());} }package com.company;interface mainService{void send(); } class DefaultServiceImpl implements mainService {Overridepublic void send() {// System.out.println(start:System.currentTimeMillis());System.out.println(hello);// System.out.println(end:System.currentTimeMillis());} }class logDefaultImpl extends DefaultServiceImpl {Overridepublic void send() {System.out.println(start:System.currentTimeMillis());System.out.println(hello);System.out.println(end:System.currentTimeMillis());} } public class main {public static void main(String[] args){mainService logDefaultImplnew logDefaultImpl();logDefaultImpl.send();} } 方法二如果接口实现类被final修饰的话不能用子类来继承可以写一个集合来实现运行时间的功能 final class DefaultServiceImpl implements mainService {Overridepublic void send() {System.out.println(hello);} } 创建一个新的类也同样实现接口mainService 在这个类中声明一个接口的变量 class logDefaultImpl implements mainService {private mainService mainservice;public logDefaultImpl(mainService mainservice){this.mainservicemainservice;}Overridepublic void send() {System.out.println(start:System.currentTimeMillis());mainservice.send();System.out.println(end:System.currentTimeMillis());} }在main主方法中 public class main {public static void main(String[] args){mainService DefaultServiceImplnew DefaultServiceImpl();DefaultServiceImpl.send();mainService lognew logDefaultImpl(new DefaultServiceImpl());log.send();} }通过构造函数将final修饰的接口实现类传入到新的类中结合方法来实现显示运行时间的功能。 05.AOP技术的底层实现。 AOP对象是通过代理对象来实现的代理对象有两种一种是通过JDK来实现的一种是通过CGlib来实现的。 jdk的代理就好像是使用一个新的类去继承接口再来包含目标接口实现类 cglib是写一个子类去继承目标接口实现类。 06.AOP的术语 1切面就是写了相关扩展功能的类 2.通知就是切面中的相关方法 3.连接点就是需要扩展的方法 4.切入点就是连接点所在的类有的时候也可能是一整个包。 07.在springboot中去实现AOP技术 先在maven项目中导入相关的依赖。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency在去写切面类这里需要用注解Aspect标识这个类是切面类用Component来将类交给spring容器进行管理。还需要使用到log4j来进行日志管理Slf4j。 package com.cy.common;import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; Slf4j//日志 Aspect//标识切面类 Component//交给spring容器管理 public class sysLogAspect {Pointcut(bean(sysUserServiceImpl))//Pointcut标识连接点多个切入点的集合public void logPointCut(){} Around(logPointCut())//这个是环绕通知属性是切入点public Object around(ProceedingJoinPoint joinPoint) throws Throwable {//还是计算运行时间//并且执行方法Long startTimeSystem.currentTimeMillis();Object object joinPoint.proceed();//调用本切面的其他方法或者其他切面的通知和目标Long endTimeSystem.currentTimeMillis();log.info(总时长是,endTime-startTime);return object;}} Pointcut标识连接点多个切入点的集合这里用来写的是连接点bean标识spring容器中的类括号中的是类名一般是接口的实现类impl。 这个切面的意义在于sysUserServiceImpl这个接口实现类的每一个方法都扩展了功能记录运行时间。 07.在springboot项目导入AOP依赖后项目实现路径发送了改变。 springboot版本2.x后默认AOP代理是Cglib 运行 AOP通知有五种 package com.cy.common;import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component;Slf4j Aspect Component public class sysTimeAspect {Pointcut(bean(sysUserServiceImpl))public void doTime(){}Around(doTime())public Object aroud(ProceedingJoinPoint joinPoint) throws Throwable {Long startTimeSystem.currentTimeMillis();Object object joinPoint.proceed();Long endTimeSystem.currentTimeMillis();log.info(总时长是,endTime-startTime);System.out.println(通知around);return object;}//前置Before(doTime())public void before() {System.out.println(通知before);}//后置After(doTime())public void after() {System.out.println(通知before);}//正常AfterReturning(doTime())public void AfterReturn() {System.out.println(通知AfterReturning);}//异常AfterThrowing(doTime())public void AfterThrow() {System.out.println(通知AfterThrowing);} } 使用通知AfterThrowing在切面中去写一个异常通知就是目标接口类方法运行时候有异常切面类处理。 Slf4j Aspect Component public class sysExceptionAspect {AfterThrowing(pointcut bean(sysUserServiceImpl),throwing e)//pointcut是连接点throwing是抛出的异常public void doHandlerException(JoinPoint jp//这个是切入点,Throwable e){MethodSignature ms (MethodSignature)jp.getSignature();log.error({},exception msg is {},ms.getName(),e.getMessage());}}getsignature返回的类型是signature。 如果想要所有的接口实现类的运行方法报错时候有这个切面的类的AfterThrowing来处理异常可以在bean中去写bean*ServiceImpl
http://www.hkea.cn/news/14511552/

相关文章:

  • 模板网站试用网页配色设计手册
  • 学网站建设需要用哪几个软件交互设计作品集网站
  • 网站建设 淘宝运营做黄页网站要告我
  • 轻松筹网站可以做吗网站集群建设和网站集约化
  • 网站设计 方案做铝材的网站
  • 企业网站建设联系wordpress图片弹窗
  • 大连的网站建设字幕组 主页 wordpress
  • 淘宝做推广网站网站的空间和域名备案
  • 网站开发项目帮朋友做网站不给钱
  • 怎样做营销型网站推广ppt保定设计网站建设
  • 东莞市做网站的公司利用赞赏码做网站收款
  • 杭州小蜜蜂网站建设东莞浩智网站建设开发
  • 所得税汇算清缴在哪个网站做Wordpress向导
  • 网站开发 文件架构图公司文化墙设计方案
  • 单位申请免费网站附近旅游团地址电话怎么搜索
  • 网站建设还有需求么一般网站如何做防采集的
  • 淘客网站建设带app平台运营推广方案
  • 上海优化网站seo公司搜网站旧域名
  • 医疗产品网站建设网站建设方案内容
  • 网站备案多少岁郑州防疫办
  • 做的最成功的网站营销型网站设计网站
  • 郑州大型网站建设价格技术支持网站
  • 2018企业网站转化率魔力百科网站做料理视频
  • 免费做问卷的网站推广软件赚钱
  • windows 2003 iis 多网站做网站建设需要做哪些工作室
  • 网站模板破解下载北京网络优化推广公司
  • 义乌网站制作多少钱个旧做网站哪家公司好
  • html个人网站源码如何网站数据备份
  • 想网上卖家具怎么做网站石家庄专业制作网站
  • 福建工程建设中心网站广州市绿色建筑信息平台