如何通过Spring AOP技术实现Controller层操作日志记录的最佳实践?
- 内容介绍
- 文章标签
- 相关推荐
本文共计225个文字,预计阅读时间需要1分钟。
2019年独角兽企业重金招聘Python工程师,标准第一步定义两个注解:
javapackage com.annotation;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Annotation1 {}
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Annotation2 {}
2019独角兽企业重金招聘Python工程师标准>>>
第一步定义两个注解
package com.annotation; import java.lang.annotation.*; /** *自定义注解 拦截Controller */ Target({ElementType.PARAMETER, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface SystemControllerLog { String description() default ""; } package com.annotation; import java.lang.annotation.*; /** *自定义注解 拦截service */ Target({ElementType.PARAMETER, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface SystemServiceLog { String description() default ""; }
第二步创建一个切点类
package com.annotation; import com.model.Log; import com.model.User; import com.service.LogService; import com.util.DateUtil; import com.util.JSONUtil; import com.util.SpringContextHolder; import com.util.WebConstants; import org.aspectj.lang.JoinPoint; 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.annotation.Resource; import javax.servlet.my.oschina.net/u/2356710/blog/895737
本文共计225个文字,预计阅读时间需要1分钟。
2019年独角兽企业重金招聘Python工程师,标准第一步定义两个注解:
javapackage com.annotation;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Annotation1 {}
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Annotation2 {}
2019独角兽企业重金招聘Python工程师标准>>>
第一步定义两个注解
package com.annotation; import java.lang.annotation.*; /** *自定义注解 拦截Controller */ Target({ElementType.PARAMETER, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface SystemControllerLog { String description() default ""; } package com.annotation; import java.lang.annotation.*; /** *自定义注解 拦截service */ Target({ElementType.PARAMETER, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface SystemServiceLog { String description() default ""; }
第二步创建一个切点类
package com.annotation; import com.model.Log; import com.model.User; import com.service.LogService; import com.util.DateUtil; import com.util.JSONUtil; import com.util.SpringContextHolder; import com.util.WebConstants; import org.aspectj.lang.JoinPoint; 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.annotation.Resource; import javax.servlet.my.oschina.net/u/2356710/blog/895737

