?AOP日志实现
?自定义日志注解类
package fun.quan.aop.comment;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* RetentionPolicy.RUNTIME 注释将由编译器记录在类文件中,并在运行时由VM保留,因此可以反射性地读取它们。
* RetentionPolicy.RUNTIME 正式的参数声明
* ElementType.METHOD 方法声明
* @author XIaoQ
*/
@Target({ElementType.PARAMETER,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Log {
/**
* 记录日志的名称
* @return
*/
String defaults() default "";
}
?创建切面类
package fun.quan.compents; import fun.quan.pojo.User; import fun.quan.pojo.UserLogs; import fun.quan.service.LogService; import fun.quan.utils.SpringUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.NamedThreadLocal; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; i
版权声明:本文为xiaoquanz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。