zoukankan      html  css  js  c++  java
  • AOP使用

    package com.googosoft.db.aspect;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.*;
    import org.springframework.stereotype.Component;
    
    /** 
    * @author songyan 
    * @version 2020年2月15日 上午10:14:06 
    * @desc
    */
    @Aspect
    @Component
    public class BrokerAspect {
        
        @Around("execution(* com.googosoft.db.dao.*.*.*(..))")
        public Object Around(ProceedingJoinPoint point){
            synchronized (this) {
                try {
                    return point.proceed();
                } catch (Throwable e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
    package com.googosoft.db.aspect;
    
    import org.aspectj.lang.annotation.*;
    import org.springframework.stereotype.Component;
    
    /**
     * @author songyan
     * @version 2020年2月15日 上午10:14:06
     * @desc
     */
    @Aspect
    @Component
    public class BrokerAspect {
    
        /**
         * 定义切入点,切入点为com.example.demo.aop.AopController中的所有函数
         * 通过@Pointcut注解声明频繁使用的切点表达式
         */
        @Pointcut("execution(* com.googosoft.db.service.*.*.add*(..)) || execution(* com.googosoft.db.service.*.*.update*(..)) || execution(* com.googosoft.db.service.*.*.del*(..))")
        public void BrokerAspect() {
    
        }
    
        /**
         * @description 在连接点执行之前执行的通知
         */
        @Before("BrokerAspect()")
        public void doBeforeGame() {
            synchronized (this) {
    
            }
        }
    
        /**
         * @description 在连接点执行之后执行的通知(返回通知和异常通知的异常)
         */
        @After("BrokerAspect()")
        public void doAfterGame() {
        }
    
        /**
         * @description 在连接点执行之后执行的通知(返回通知)
         */
        @AfterReturning("BrokerAspect()")
        public void doAfterReturningGame() {
        }
    
        /**
         * @description 在连接点执行之后执行的通知(异常通知)
         */
        @AfterThrowing("BrokerAspect()")
        public void doAfterThrowingGame() {
        }
    }
  • 相关阅读:
    linux下的make命令
    安装pytorch
    CondaError: Downloaded bytes did not match Content-Length
    cv2.VideoCapture(0)
    cv2.imread(),cv2.imshow(),cv2.imwrite()
    unsqueeze()和squeeze()
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module
    Can't connect to MySQL server on '127.0.0.1' (10061)
    ping ip
    _vimrc配置
  • 原文地址:https://www.cnblogs.com/excellencesy/p/12320796.html
Copyright © 2011-2022 走看看