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

国外做任务的网站上海近期大事件

国外做任务的网站,上海近期大事件,rap做词网站,新手如何学seo认识 Spring AOP 1.什么是 AOP2.AOP 中的概念3.用 AOP 方式管理日志3.1 编写 AOP 日志注解类3.2 编写控制器用于测试 1.什么是 AOP AOP#xff08;Aspect Oriented Program#xff0c;面向切面编程#xff09;把业务功能分为核心、非核心两部分。 核心业务功能#xff1a… 认识 Spring AOP 1.什么是 AOP2.AOP 中的概念3.用 AOP 方式管理日志3.1 编写 AOP 日志注解类3.2 编写控制器用于测试 1.什么是 AOP AOPAspect Oriented Program面向切面编程把业务功能分为核心、非核心两部分。 核心业务功能用户登录、增加数据、删除数据。非核心业务功能性能统计、日志、事务管理。 在 Spring 的面向切面编程AOP思想里非核心业务功能 被定义为 切面。核心业务功能和切面功能先被分别进行独立开发然后把切面功能和核心业务功能 编织 在一起这就是 AOP。 由此可见AOP 将业务无关却为业务模块所共同调用的逻辑封装起来以便减少系统的重复代码降低模块间的耦合度利于未来的拓展和维护。这正是 AOP 的目的它是 Spring 最为重要的功能之一被广泛使用。 2.AOP 中的概念 切入点pointcut在哪些类、哪些方法上切入。通知advice在方法前、方法后、方法前后做什么。切面aspect切面 切入点 通知。即在什么时机、什么地方、做什么。织入weaving把切面加入对象并创建出代理对象的过程。环绕通知AOP 中最强大、灵活的通知它集成了前置和后置通知保留了连接点原有的方法。 3.用 AOP 方式管理日志 下面通过实例演示如何用 AOP 方式管理日志。 3.1 编写 AOP 日志注解类 package com.example.demo.aop;import org.apache.commons.lang3.builder.ToStringBuilder; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest; import java.util.Arrays;/*** Description: 使之成为切面类*/ Aspect /*** Description: 把切面类加入到IOC容器中*/ Component public class AopLog {private Logger logger LoggerFactory.getLogger(this.getClass());//线程局部的变量,解决多线程中相同变量的访问冲突问题。ThreadLocalLong startTime new ThreadLocal();//定义切点Pointcut(execution(public * com.example..*.*(..)))public void aopWebLog() {}Before(aopWebLog())public void doBefore(JoinPoint joinPoint) throws Throwable {startTime.set(System.currentTimeMillis());// 接收到请求记录请求内容ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request attributes.getRequest();// 记录下请求内容logger.info(URL : request.getRequestURL().toString());logger.info(HTTP方法 : request.getMethod());logger.info(IP地址 : request.getRemoteAddr());logger.info(类的方法 : joinPoint.getSignature().getDeclaringTypeName() . joinPoint.getSignature().getName());//logger.info(参数 : Arrays.toString(joinPoint.getArgs()));logger.info(参数 : request.getQueryString());}AfterReturning(pointcut aopWebLog(),returning retObject)public void doAfterReturning(Object retObject) throws Throwable {// 处理完请求返回内容logger.info(应答值 : retObject);logger.info(费时: (System.currentTimeMillis() - startTime.get()));}//抛出异常后通知After throwing advice 在方法抛出异常退出时执行的通知。AfterThrowing(pointcut aopWebLog(), throwing ex)public void addAfterThrowingLogger(JoinPoint joinPoint, Exception ex) {logger.error(执行 异常, ex);}}Before在切入点开始处切入内容。After在切入点结尾处切入内容。AfterReturning在切入点 return 内容之后切入内容可以用来对处理返回值做一些加工处理。Around在切入点前后切入内容并自己控制何时执行切入点自身的内容。AfterThrowing用来处理当切入内容部分抛出异常之后的处理逻辑。Aspect标记为切面类。Component把切面类加入到 IOC 容器中让 Spring 进行管理。 3.2 编写控制器用于测试 下面的控制器构造了一个普通的 Rest 风格的页面。 package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class AopLogController {GetMapping(/aoptest)public String aVoid(){return hello aop test;} }启动项目访问 http://localhost:8080/aoptest。 在控制台会输出如下信息。
http://www.dnsts.com.cn/news/255525.html

相关文章:

  • 自媒体平台企业网站怎么设置昆山正规网站建设
  • 网站域名空间地址云南网站建设维修公司
  • 200元网站建设大气手机企业网站
  • 建电商网站要多少钱黄骅港泰地码头
  • 免费查企业电话网站百度指数移动版app
  • 江苏质监站网站做资料网站建设上机课
  • 长沙建网站的自己怎么做网站游戏
  • 合肥专业网站制旅行社erp系统
  • 招标网站建设方案wordpress专题栏目
  • 用js做网站如何申请企业邮箱
  • 自己做网站销售品牌网站运营
  • 同城分类网站建设政务移动门户网站建设
  • 提供常州网站建设100个游戏代码
  • 外贸电商网站设计网站由那些组成
  • 仿站WordPress网店装修流程
  • 怎样拍照产品做网站长沙网络营销
  • 网站建设文化代理商wordpress建站教程jiuyou
  • 有没有专门做针织衫的网站北京网页设计公司兴田德润挺好
  • 同ip多域名做网站重庆网站到首页排名
  • 网站做百度排名教程黑帽seo培训大神
  • 建站出海如何创建一个免费的网站
  • 高端网站建设公短视频代运营合作方案
  • 浙江华企网站做的咋样苏州企业网站建设制作服务
  • 有什么网站可以做运动网络推广员的工作内容
  • dedecms 如何关闭网站在阿里巴巴上做网站要多少钱
  • vue适合什么网站开发wordpress标签管理系统
  • 免费个人建站空间网站备案自己备案和代理备案
  • 农产品信息网站的建设wordpress装主题需要ftp
  • 网站各种按钮代码王野天这个名字如何
  • 泰安企业建站公司排行wordpress 用户api