AspectJ的使用方法

最近在复习Spring框架的内容,记录一下之前我所用到的工具方法以及一些基本原理。

AspectJ是Spring aop编程的一个静态面向切面编程框架,该框架使用起来非常简单,相当于帮助你把Spring aop编程给封装好了,直接在maven那里导入然后配置一下属性即可轻松实现面向对象编程。

先上示例代码:

@Aspect
@Component
public class TransactionInterceptor {
    @Pointcut("execution(public * com.chat.controller..*.*(..))")
    public void pointcut(){

    }

    @Before("pointcut()")
    public void beginTransaction(){
        HibernateUtil.getCurrentSession().beginTransaction();
    }

    @After("pointcut()")
    public void commitTransaction(){
        HibernateUtil.getCurrentSession().getTransaction().commit();
    }

    @AfterThrowing(value = "pointcut()")
    private void rollbackTransaction(){
        System.out.println("rollback");
        HibernateUtil.getCurrentSession().getTransaction().rollback();
    }
}

这是我的工程里面的一些面向切面编程的代码,@Aspect是代表这个类应用了AspectJ,而@Component是代表交给了Spring去管理。

@Pointcut("execution(public * com.chat.controller..*.*(..))")

这个是声明一下代码是切入点,后面的意思是需要进行切入的类的位置,用了正则表达式来匹配。下面的方法是切入点,可以不管他。

@Before("pointcut()")

是在切入点前执行的代码。

@After("pointcut()")

是切入点后执行的代码。

@AfterThrowing(value = "pointcut()")

这个是抛出异常后进行异常处理的代码。一般而言以上几个就已经够用了,当然啦,还有其他的一些标签,这里就不一一列出了,可以自行谷歌。当然啦,这个是AspectJ最方便的配置方法,和java其他框架一样,还有xml配置法,这里就不一一展开了。

你可能感兴趣的:(idea,学习笔记)