该SpringBoot项目使用AOP的环绕@Around注解及自定义注解保存操作日志到数据库,自定义注解中会配置日志模板类型logModelType字段,通过该字段去匹配是创建、删除、修改...等等功能,本案例就是为了模拟现实项目中通过AOP及自定义注解如何保存操作详情日志功能。 特色 form表单除了input输入框,也会有一些按钮【Disable/Enable】...
获取类方法和字段的注解信息,只能通过Java的反射技术来获取 Annotation 对象。 注解可以没有定义成员,只做标识。 元注解 元注解是专门用来注解其他注解的注解,听起来有些绕口,实际上就是专门为自定义注解提供的注解。java.lang.annotation提供了四种元注解: @Documented – 注解是否将包含在JavaDoc中 @Retention – 什...
//这里的OperationType 是定义的一个枚举类型,value是里面的枚举常量,在我们标识对应的方法中可以使用不同的常量来执行不同的判断//表明作用对象是方法@Target(value = ElementType.METHOD)//运行时实现的,aop必写@Retention(RetentionPolicy.RUNTIME) public@interfaceAutoFill {OperationTypevalue(); } 注解完成 注解完...
第五步:postman模拟调用接口,输出AOP中ProceedingJoinPoint获取目标方法,参数,注解 注意点 注意点1:日志操作类LogAopAction必须加两个注解@Aspect和@Component,其中@Aspect注解代表该类为切面,而@Component为了使该类能让spring容器扫描到 注意点2:@Around注解中配置@annotation注解用来指定生效的自定义注解名字 注意点3:该...
自定义注解import org.springframework.stereotype.Service; @Service public class SomeService { @DataValid public void processData(String data) { // 业务处理逻辑... System.out.println("Processing data: " + data); } } 在这个例子中,`DataValid` 注解用于标记需要进行数据验证的方法。`DataValidation...
定义了该注解是运行时生效,注解作用在method方法上。 新建InterfaceLogAspect,通过AOP切面实现自定义注解InterfaceLog的代码逻辑: importlombok.extern.slf4j.Slf4j;importorg.aspectj.lang.JoinPoint;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.aspectj.lang.reflect.MethodSigna...
新建自定义注解@Log @Target(ElementType.METHOD) //注解放置的目标位置,METHOD是可注解在方法级别上 @Retention(RetentionPolicy.RUNTIME) //注解在哪个阶段执行 @Documented //生成文档 public @interface Log { /** * 字段key * @return */ String key() default ""; ...
AOP可以用于日志的设计,这样话就少不了要获取上下文的信息,博主在设计日志模块时考虑了一下此法,整理了一下如何用AOP来拦截你自定义的注解。 自定义注解 首先先自定义一个注解 @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceAxin{/** ...
自定义注解配合aop 首先创建一个自定义注解,此注解使用在流程抄送的service方法上 import java.lang.annotation.*; /** * 流程需要抄送的功能 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface FuncCCAnnotation { String desc() default "";...