首页 > 其他分享 >AOP - Advisor 示例

AOP - Advisor 示例

时间:2024-10-20 09:42:55浏览次数:1  
标签:LoggingAdvisor return 示例 Advisor class AOP Override new public

  1. 定义通知

    public class LoggingAdvice implements MethodInterceptor {
        @Override
        public Object invoke(MethodInvocation invocation) throws Throwable {
            System.out.println("Method " + invocation.getMethod().getName() + " is being called");
            return invocation.proceed(); // 继续执行目标方法
        }
    }
    
  2. 定义切点

    public class LoggingPointcut implements Pointcut {
        @Override
        public ClassFilter getClassFilter() {
            return ClassFilter.TRUE; // 适用于所有类
        }
    
        @Override
        public MethodMatcher getMethodMatcher() {
            return new NameMatchMethodMatcher() {
                @Override
                public boolean matches(String methodName, Class<?> targetClass) {
                    return methodName.startsWith("get"); // 适用于所有以 "get" 开头的方法
                }
            };
        }
    }
    
  3. 定义切面类

    public class LoggingAdvisor extends DefaultPointcutAdvisor {
        public LoggingAdvisor() {
            super(new LoggingPointcut(), new LoggingAdvice());
        }
    }
    
  4. 注册切面

    @Configuration
    public class AopConfig {
        @Bean
        public LoggingAdvisor loggingAdvisor() {
            return new LoggingAdvisor();
        }
    }
    

标签:LoggingAdvisor,return,示例,Advisor,class,AOP,Override,new,public
From: https://www.cnblogs.com/cyrushuang/p/18486960

相关文章

  • AOP - AspectJ 示例
    //自定义注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceLogExecution{}@Aspect//切面类@Order(1000)//数字越小,优先级越高@Component//也要注册到容器publicclassLoggingAspect{//定义切点@Pointcut("ex......
  • 低功耗4G模组:tcs3472颜色传感器示例
    ​今天我们学习合宙低功耗4G模组Air780EP的LuatOS开发tcs3472示例,文末【阅读原文】获取最新资料1一、简介tcs3472颜色传感器能够读取照射到的物体的RGB三种数值,从而识别颜色关联文档和使用工具:LuatOS固件获取tcs3472颜色传感器接口说明Luatools下载调试工具二......
  • 低功耗4G模组:LCD应用示例
    ​今天我们学习合宙Air780E开发板LCD应用示例,文末【阅读原文】获取最新资料。本文档适用于Air780E开发板关联文档和使用工具lcd-demo:https://gitee.com/openLuat/LuatOS/tree/master/demo/lcdLuatools下载调试工具一、环境准备1.1Air780E开发板一套 ​1.......
  • celery简单配置示例
    目录生产者消费者配置信息celery的配置文件示例celer简单示例tree-I'containerd|vminit|__pycache__'.#app.py属于生产者├──app.py#celery_app用于配置消费者及队列信息└──celery_app#confi.py配置信息├──config.py#__init__.pycelery实例初始......
  • java堆排序的示例代码
    publicclassHeapSort{publicstaticvoidmain(String[]args){int[]arr={12,11,13,5,6,7};System.out.println("Originalarray:");for(intvalue:arr){System.out.print(value+"");......
  • RabbitMQ 通配符(Topic)模式示例
    总结自:BV15k4y1k7Ep模式说明Topic类型与Direct相比,都是可以根据Routingkey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routingkey的时候使用通配符!Topic类型的Routingkey一般都是由一个或多个单词组成,多个单词之间以.分隔,例如:item.insert通配符规......
  • RabbitMQ 路由(Routing)模式示例
    总结自:BV15k4y1k7Ep模式说明和消费订阅模式相比,路由模式特点:交换机的类型为Direct。队列与交换机绑定时,要指定一个Routingkey(路由key)。消息的发送方在向Exchange发送消息时,也必须指定消息的Routingkey。Exchange不再把消息交给每一个绑定的队列,而是根据消息的Rout......
  • SpringAop学习笔记
    SpringAop学习笔记文章目录SpringAop学习笔记1.面向切面编程(AOP)1.1代理模式1.2静态代理1.3动态代理2.AOP概念及相关术语2.1概述2.2相关术语①横切关注点②通知(增强)③切面④目标⑤代理⑥连接点⑦切入点2.3作用3.基于注解的AOP3.1技术说明3.2准备工作3.3创......
  • RabbitMQ 发布订阅(Publish Subscribe)模式示例
    总结自:BV15k4y1k7Ep交换机订阅模式示例图:在简单模式和工作队列模式中,只有3个角色:P:生产者,也就是要发送消息的程序。C:消费者,消息的接受者,会一直等待消息到来。Queue:消息队列,图中红色部分。而在订阅模型中,多了一个Exchange角色,而且工作过程略有变化:P:生产者,也就是要......
  • 使用AES 128位加解密,加解密模式采用CBC,填充模式采用PKCS5Padding的Java工具方法示例
    importjavax.crypto.Cipher;importjavax.crypto.spec.IvParameterSpec;importjavax.crypto.spec.SecretKeySpec;importjava.util.Base64;publicclassAESUtils{privatestaticfinalStringAES_ALGORITHM="AES/CBC/PKCS5Padding";private......