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

2024年流行病毒症状有哪些郑州seo顾问培训

2024年流行病毒症状有哪些,郑州seo顾问培训,有多个网页的大网站如何做,武汉网页定制公司在Spring Boot项目中&#xff0c;通过自定义注解和AOP实现方法执行前后的日志记录&#xff0c;可以按照以下步骤操作&#xff1a; 步骤 1&#xff1a;添加依赖 确保pom.xml中包含AOP依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupI…

在Spring Boot项目中,通过自定义注解和AOP实现方法执行前后的日志记录,可以按照以下步骤操作:

步骤 1:添加依赖

确保pom.xml中包含AOP依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>

步骤 2:创建自定义注解

定义@Loggable注解:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Loggable {
}

步骤 3:实现AOP切面

创建切面类处理日志逻辑:

import com.fasterxml.jackson.databind.ObjectMapper;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;import java.util.Arrays;@Aspect
@Component
public class LoggingAspect {private final Logger logger = LoggerFactory.getLogger(LoggingAspect.class);private final ObjectMapper objectMapper = new ObjectMapper();@Around("@annotation(Loggable)")public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {MethodSignature signature = (MethodSignature) joinPoint.getSignature();String className = signature.getDeclaringType().getSimpleName();String methodName = signature.getName();Object[] args = joinPoint.getArgs();// 记录方法入参logger.info(">>> 方法 {}.{} 入参: {}", className, methodName, Arrays.toString(args));try {long startTime = System.currentTimeMillis();// 执行目标方法Object result = joinPoint.proceed();long elapsedTime = System.currentTimeMillis() - startTime;// 记录返回结果和执行时间logger.info("<<< 方法 {}.{} 耗时: {} ms, 返回值: {}",className,methodName,elapsedTime,objectMapper.writeValueAsString(result));return result;} catch (Throwable e) {// 记录异常信息logger.error("!!! 方法 {}.{} 异常: {}", className, methodName, e.getMessage(), e);throw e;}}
}

步骤 4:使用注解

在需要监控的方法上添加@Loggable

@RestController
@RequestMapping("/api/aop")
public class AopController {@GetMapping("getResult/{param}")@Loggablepublic ResponseEntity<String> getResult(@PathVariable("param") String param){return new ResponseEntity<>("12345678", HttpStatus.OK);}
}

高级配置建议

  1. 敏感信息过滤:在序列化前排除敏感字段。
  2. 性能优化:添加条件判断,仅在调试模式记录完整日志。
  3. 异步日志:使用异步Appender提升性能。
  4. 自定义序列化:对特定类型定制序列化方式。

执行效果示例

2025-03-06 22:39:36.646  INFO 5268 --- [nio-8080-exec-3] com.sh.system.config.LoggingAspect       : >>> 方法 AopController.getResult 入参: [123]
2025-03-06 22:39:36.659  INFO 5268 --- [nio-8080-exec-3] com.sh.system.config.LoggingAspect       : <<< 方法 AopController.getResult 耗时: 2 ms, 返回值: {"headers":{},"body":"12345678","statusCode":"OK","statusCodeValue":200}

接口调用
在这里插入图片描述

注意事项

  1. 确保Spring Boot版本 ≥ 2.x
  2. 复杂对象需实现toString()或配置Jackson序列化
  3. 内部方法调用需通过代理对象执行

以上实现会完整记录方法执行的输入参数、返回结果和执行耗时,异常时会记录堆栈跟踪信息。

http://www.dtcms.com/wzjs/427870.html

相关文章:

  • 深圳网站建设培训班方象科技专注于什么领域
  • 男女性做那个微视频网站域名查询138ip
  • 品牌推广与传播方案网络seo推广
  • 怎么做微信钓鱼网站吗镇江搜索优化技巧
  • 嘉兴cms建站模板百度指数官网移动版
  • 用dw做销售网站网站推广系统方案
  • 烟台网站建设力推企汇互联见效付款最大免费广告发布平台
  • 企业网站管理系统手机版教程关键词排名优化易下拉技巧
  • 网站建设网站自助建设关键词百度云
  • 惠州网站建设3wwwnet外贸网站平台都有哪些 免费的
  • 网站301重定向怎么做营销模式100个经典案例
  • 集趣网站怎么做兼职舆情信息范文
  • 推荐自助建网站平台全网推广方案
  • 中交建设集团网站新闻国内搜索引擎排行榜
  • 连云港市建设工程质量监督站网站北京网站优化企业
  • 政务网站建设工作的通知济南百度开户电话
  • 建网站logo怎么做域名注册 万网
  • vk社交网站做婚介亚马逊开店流程及费用
  • 开发门户网站需要注意什么搜索引擎主要包括三个部分
  • 一般什么企业需要建站优化公司哪家好
  • 潞城网站建设新东方雅思培训价目表
  • 网站用vps做dns网站seo搜索引擎优化案例
  • 怎样把已经有的网站做推广哪家网站推广好
  • 网站建设服务免费的大数据分析平台
  • 河北省廊坊市建设银行网站自己手机怎么免费做网站
  • 海外网网址国内做seo最好的公司
  • 江苏省常州建设高等职业技术学校网站google推广seo
  • 建设学校网站手机如何建网站
  • 网站建设国内现状优化设计单元测试卷答案
  • 前端做网站需要的技能seo兼职接单平台