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() {
        }
    }
  • 相关阅读:
    Visual Studio统计有效代码行数
    Release 下调试代码设置 (VS2005/2008)(转)
    vs2008编译出来的程序不能运行或需要安装vcredist_x86.exe才能运行解决办法
    优化3D图形流水线
    (转)地形碰撞高度计算
    stlport调试watch查看容器里面的值
    JavaScript调试、测试和发布工具
    MYGUI/CEGUI中文输入的问题
    jar包的生成及运行
    安卓百度地图开发so文件引用失败问题研究
  • 原文地址:https://www.cnblogs.com/excellencesy/p/12320796.html
Copyright © 2011-2022 走看看