Springboot使用Aspect实现切面日志

本文介绍了如何在SpringBoot项目中使用AOP实现切面日志,包括创建日志实体类、定义日志注解、声明切面以及环绕通知。通过注解方式定义系统日志,利用AOP进行方法调用时的日志记录和保存。
摘要由CSDN通过智能技术生成

org.springframework.boot

spring-boot-starter-aop

gson主要是我用于数据的处理,不是必须的

com.google.code.gson

gson

2.8.1

个人喜好

org.springframework.boot

spring-boot-devtools

runtime

org.projectlombok

lombok

true

3、日志实体类和service

package com.space.aspect.bo;

import lombok.Data;

/**

* 系统日志bo

* @author zhuzhe

*/

@Data

public class SysLogBO {

private String className;

private String methodName;

private String params;

private Long exeuTime;

private String remark;

private String createDate;

}

package com.space.aspect.service;

import com.space.aspect.bo.SysLogBO;

import lombok.extern.slf4j.Slf4j;

import org.springframework.stereotype.Service;

/**

* @author zhuzhe

*/

@Slf4j

@Service

public class SysLogService {

public boolean save(SysLogBO sysLogBO){

// 这里就不做具体实现了

log.info(sysLogBO.getParams());

return true;

}

}

4、定义日志注解

这里呢,我们记录日志使用注解的形式。所以,先定义一个注解

package com.space.aspect.anno;

import java.lang.annotation.*;

/**

* 定义系统日志注解

* @author zhuzh

  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot使用AspectJ进行面向切面编程是非常方便的。下面是一个简单的示例,演示了如何在Spring Boot应用程序中使用AspectJ。 首先,确保在你的Spring Boot项目中添加了AspectJ的依赖。你可以在`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> ``` 接下来,创建一个切面类,这个类将包含你想要实现的横切关注点的逻辑。你可以使用`@Aspect`注解来标记这个类为一个切面类,并使用其他注解来定义切点和通知。 ```java import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; @Aspect @Component public class LoggingAspect { @Before("execution(* com.example.demo.service.*.*(..))") public void logBefore() { System.out.println("Before method execution"); } } ``` 在上面的示例中,`LoggingAspect`是一个切面类,使用了`@Aspect`和`@Component`注解进行标记。`logBefore()`方法是一个前置通知(Before Advice),它会在指定切点方法执行之前打印一条日志。 最后,在你的Spring Boot应用程序中启用AOP。在主应用程序类上添加`@EnableAspectJAutoProxy`注解。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.EnableAspectJAutoProxy; @SpringBootApplication @EnableAspectJAutoProxy public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 现在,当你运行Spring Boot应用程序时,切面类的逻辑将自动应用于指定的切点方法。在上面的示例中,`logBefore()`方法将在`com.example.demo.service`包中的所有方法执行之前被调用。 这只是一个简单的示例,你可以根据自己的需求使用更多的AspectJ注解和通知类型来实现更复杂的切面逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值