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

网站建设公司招人哪家公司建网站好

网站建设公司招人,哪家公司建网站好,历下区住房和城市建设局网站,广告设计需要学什么知识一、前言 在上篇文章中#xff0c;我们使用了AOP思想实现日志记录的功能#xff0c;代码中采用了指定连接点方式#xff08;Pointcut(“execution(* com.nowcoder.community.controller..(…))”)#xff09;#xff0c;指定后不需要在进行任何操作就可以记录日志了…一、前言 在上篇文章中我们使用了AOP思想实现日志记录的功能代码中采用了指定连接点方式Pointcut(“execution(* com.nowcoder.community.controller..(…))”)指定后不需要在进行任何操作就可以记录日志了但是如果我们对某些controller不想记录日志就需要更改指定的切点灵活性较差。因此采用注解AOP方式实现更灵活的日志记录功能。 二、注解实现代码 package com.nowcoder.community.annotation;import java.lang.annotation.*;/*** author Janson* Description AOP日志记录注解* Date 2023/5/12* Target LogAspect 注解的作用目标* Retention 指定注解的保留时间*/Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface LogAspect {/*** title 自定义名称* description 自定义描述* return*/String title() default ;String description() default ; } 三、AOP日志记录类实现代码 定义切点织入点 execution(* com.nowcoder.community.controller..(…)) - 第一个 * 表示 支持任意类型返回值的方法 - com.nowcoder.community.controller 表示这个包下的类 - 第二个 * 表示 controller包下的任意类 - 第三个 * 表示 类中的任意方法 - (…) 表示方法可以拥有任意参数 可以根据自己的需求替换。 package com.nowcoder.community.aspect;import com.nowcoder.community.annotation.LogAspect; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;/*** author Janson* Description AOP日志记录此方案不统一设置连接点 Pointcut而是采用注解方式指定连接的方法* Date 2023/5/12*/ Aspect Component public class LogAspectAnnotationTest {/*** 定义切点织入点* execution(* com.nowcoder.community.controller.*.*(..))* - 第一个 * 表示 支持任意类型返回值的方法* - com.nowcoder.community.controller 表示这个包下的类* - 第二个 * 表示 controller包下的任意类* - 第三个 * 表示 类中的任意方法* - (..) 表示方法可以拥有任意参数* 可以根据自己的需求替换。**/Before(value annotation(controllerLog))public void before(JoinPoint joinPoint, LogAspect controllerLog){String className joinPoint.getClass().getName();String methodName joinPoint.getSignature().getName();ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (attributes null){return;}String ip attributes.getRequest().getRemoteHost();String requestURI attributes.getRequest().getRequestURI();String requestMethod attributes.getRequest().getMethod();String title controllerLog.title();String description controllerLog.description();System.out.println(title is title ,description is description);System.out.println(before excute ······);System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s], ip,requestURI,requestMethod,className,methodName));}After(value annotation(controllerLog))public void after(JoinPoint joinPoint, LogAspect controllerLog){String className joinPoint.getClass().getName();String methodName joinPoint.getSignature().getName();ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (attributes null){return;}String ip attributes.getRequest().getRemoteHost();String requestURI attributes.getRequest().getRequestURI();String requestMethod attributes.getRequest().getMethod();String title controllerLog.title();String description controllerLog.description();System.out.println(title is title ,description is description);System.out.println(after excute ······);System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s], ip,requestURI,requestMethod,className,methodName));}AfterReturning(value annotation(controllerLog))public void afterReturning(JoinPoint joinPoint, LogAspect controllerLog){String className joinPoint.getClass().getName();String methodName joinPoint.getSignature().getName();ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (attributes null){return;}String ip attributes.getRequest().getRemoteHost();String requestURI attributes.getRequest().getRequestURI();String requestMethod attributes.getRequest().getMethod();String title controllerLog.title();String description controllerLog.description();System.out.println(title is title ,description is description);System.out.println(afterReturning excute ······);System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s], ip,requestURI,requestMethod,className,methodName));}AfterThrowing(value annotation(controllerLog),throwing e)public void afterThrowing(JoinPoint joinPoint, LogAspect controllerLog,Exception e){String className joinPoint.getClass().getName();String methodName joinPoint.getSignature().getName();ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (attributes null){return;}String ip attributes.getRequest().getRemoteHost();String requestURI attributes.getRequest().getRequestURI();String requestMethod attributes.getRequest().getMethod();String title controllerLog.title();String description controllerLog.description();System.out.println(title is title ,description is description);System.out.println(afterThrowing excute ······ e.getMessage());System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s],请求失败原因 [%s], ip,requestURI, requestMethod,className,methodName,e.getMessage()));}Around(value annotation(controllerLog))public void around(ProceedingJoinPoint joinPoint, LogAspect controllerLog) throws Throwable {String className joinPoint.getTarget().getClass().getName();String methodName joinPoint.getSignature().getName();System.out.println(className is : className . methodName is : methodName);ServletRequestAttributes attributes (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();if (attributes null){return;}// 请求ipString ip attributes.getRequest().getRemoteHost();// 请求路径String requestURI attributes.getRequest().getRequestURI();// 请求方法String requestMethod attributes.getRequest().getMethod();String title controllerLog.title();String description controllerLog.description();System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s], ip,requestURI,requestMethod,className,methodName));Object obj null;try {obj joinPoint.proceed();} catch (Throwable e) {System.out.println(我捕获了异常);throw new RuntimeException(执行失败,e);}System.out.println(String.format(用户 [%s] 的请求路径为[%s], 请求方式为 [%s],请求类名为 [%s], 请求方法名为 [%s], ip,requestURI,requestMethod,className,methodName));System.out.println(around excute after ········);} }
http://www.sczhlp.com/news/161931/

相关文章:

  • 网做英文网站易讯网站建设
  • 怎样给自己的店子做网站哪家手机网站建设
  • 无为县住房建设局网站首页怎么看出网站有没有做404页面
  • 网站开发专业优势开平网站建设公司
  • 企业网站 程序德洲网站建设
  • 网站开发广告宣传岳阳汨罗网站建设
  • 网站设计网站项目流程图做外贸网站买海外域名
  • 江苏淮安建设局网站高级经济师
  • 自己做配图的网站网络运营商哪家好
  • 台山网站建设公司网站页面布局模板
  • 佛山新网站建设公司娄底网站建设方案
  • 网站建设报告心得体会中国怎么进fiverr网站做任务
  • 物流公司网站建设方案西地那非片功效与作用
  • php 网站开发框架ap软文营销范文
  • 快手做电商需要投资多少钱中山网站seo
  • 食品购物网站建设群晖nas做网站服务器
  • 好看怎么上传视频网站吗推广方案是什么
  • 网站首页代码在哪里柳州购物网站开发设计
  • 如何给 Claude 中的网页做截图
  • 2_gradle配置加速
  • 3_flutter简单教程
  • 兰溪市建设局官方网站锦州网站建设
  • 大连网站优化方案深圳专业网站建设排名
  • 武夷山网站建设wzjseo在线网页代理浏览器
  • 网站公司的利润在哪里个人备案网站可以做支付吗
  • 淘客网站做的好的北京seo经理
  • 代前导页的网站网站建设那家公司好
  • 灌云网站制作网站运营推广怎做
  • 中国建设银行网站首页下载wordpress锚文字
  • 3d自学网站现在pc网站的标准一般是做多大