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

宁波网站建设培训学校游戏平台十大排名

宁波网站建设培训学校,游戏平台十大排名,域名注册局官网,青岛优化网站技术内容参考自以下两个链接1、springboot中使用AOP切面完成全局日志_aop全局日志_邹飞鸣的博客-CSDN博客使用AOP记录日志_aop日志_trusause的博客-CSDN博客第一个链接思路很清晰,讲的也很详细,第二个链接讲了自定义注解为了便于自己理解做了以下整理目录 1.aspectj基本概念 2.添加…内容参考自以下两个链接1、springboot中使用AOP切面完成全局日志_aop全局日志_邹飞鸣的博客-CSDN博客使用AOP记录日志_aop日志_trusause的博客-CSDN博客第一个链接思路很清晰,讲的也很详细,第二个链接讲了自定义注解为了便于自己理解做了以下整理目录 1.aspectj基本概念 2.添加aop依赖 3.进行切面处理 (1)切面类 (2)自定义注解 (3)controller和serviceimpl 4.定义切点时包扫描路径的表达式怎么写 1.aspectj基本概念 下面两个类JoinPoint和ProceedingJoinPoint,ProceedingJoinPoint类在切面类中最后一个方法doAround()中用到了(已注释的部分),用于获取自定义注解2.添加aop依赖 !-- aop 依赖 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency 3.进行切面处理 主要是在切面类中设置切入点(指定包扫描路径),然后定义织入方式(方法前,方法后等)也可以自定义注解,但是在我看来,最终还是要在切面类指定包扫描路径的,自定义注解无非是传入一些自定义参数,暂时没有探索别的用处自定义注解的部分已被注释,直接放开注释就能使用(1)切面类 import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; 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;Aspect Component public class WebLogAspect {// 获取日志类方便直接在控制台输出统一格式的日志信息private final static Logger logger LoggerFactory.getLogger(WebLogAspect.class);/*** 以 controller 包下定义的所有请求为切入点*/Pointcut(execution(public * com.tt.test.controller.*.*(..)))public void webLog() {}/*** 在切点之前织入** param joinPoint* throws Throwable*/Before(webLog()) // webLog():是你Pointcut注解的方法名public void doBefore(JoinPoint joinPoint) throws Throwable {// 开始打印请求日志ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request attributes.getRequest();// 打印请求相关参数logger.info( Start );}/*** 在切点之后织入** throws Throwable*/After(webLog())public void doAfter() throws Throwable {logger.info( End );// 每个请求之间空一行logger.info();}/*** 环绕** param proceedingJoinPoint* return* throws Throwable*/Around(webLog())public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {long startTime System.currentTimeMillis();Object result proceedingJoinPoint.proceed();//获取自定义注解中传入的desc/*Signature signature proceedingJoinPoint.getSignature();MethodSignature methodSignature (MethodSignature) signature;Method method methodSignature.getMethod();EagleEye eagleEye method.getAnnotation(EagleEye.class);String desceagleEye.desc();logger.info(Request desc   : {}, desc);*/logger.info(Request Args   : {}, Arrays.asList(result).toString());// 执行耗时logger.info(Time-Consuming : {} ms, System.currentTimeMillis() - startTime);return result;} } (2)自定义注解 import java.lang.annotation.*;Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) Documented public interface EagleEye {//描述,默认为空String desc() default ; } (3)controller和serviceimpl 要想serviceimpl中的方法也被aop织入,需要把serviceimpl文件移动到controller文件夹中,因为切面类中定义了包扫描路径,或者不移动文件夹而是在切面类中定义切点的时候把serviceimpl的包路径也包含进去controllerimport com.tt.test.config.EagleEye; import com.tt.test.service.EagleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/** * 测试aop全局日志 */ RestController RequestMapping(/eagle) public class EagleController {Autowiredprivate EagleService eagleService;RequestMapping(/h1) //    EagleEye(desc hello1)public String h1(){return eagleService.h1();}RequestMapping(/h2) //    EagleEye(desc hello2)public String h2(){return eagleService.h2();} } serviceimpl实现类(service层接口省略)import com.tt.test.config.EagleEye; import com.tt.test.service.EagleService; import org.springframework.stereotype.Service;Service public class EagleServiceImpl implements EagleService {Override //    EagleEye(desc hello1-service)public String h1() {String ss1;return s;}Override //    EagleEye(desc hello2-service)public String h2() {String ss2;return s;} } 4.定义切点时包扫描路径的表达式怎么写
http://www.dnsts.com.cn/news/90500.html

相关文章:

  • 沧州青县网站建设公司网站建设要多少钱
  • 建设工程 质量 协会网站新手制作网页的方法
  • 神东集团网站建设做装修的网站
  • 怎么做木马网站p2p网站建设方案
  • 网站建设情况说明书食品建设网站前的市场分析
  • 昆明建网站电话做毕设网站多少钱
  • 如何做搜索网站私人下载服务器
  • html5手机网站框架试述企业网的定义和意义
  • 什么叫商城网站网站死了怎么办
  • 高端网站建设机构福州cms建站
  • 门户网站建设的作用及意义网业截屏怎么截
  • 利用ionic做的网站域名加wordpress后缀
  • seo视频网页入口网站推广百度一下首页网址
  • 网站开发模块学些什么建网站后如何维护
  • 网站建设公司汉狮网络公众号编辑器免费模板
  • 有网页源码怎么做网站2024装修图片100张
  • 网站开发的层次素材中国
  • 网站别人能打开我打不开怎么看网站做没做备案
  • 网上商城网站开发苏州模板建站平台
  • 怎样批量做地级市网站网络销售 市场推广
  • 国际网站 建设鞍山网站页设计制作
  • 网站建设哪个公司比较好网站制作时间表
  • 湖南网站建设 莫道建立一个网站平台需要多少钱
  • 网站设计案例零基础学软件开发需要多久
  • php网站开发报告网站改版怎么改
  • 2003服务器怎么挂网站wordpress支付插件绿色
  • 公司网站制作有哪些wordpress 漏洞教程
  • 如何选择网站开发语言沈丘做网站yooker
  • 网页设计网站布局分析交互设计软件有哪些
  • 网页预览手机网站效果外贸采购网官网