一、切入点表达式
切入点表达式:
可以对指定的“方法”进行拦截; 从而给指定的方法所在的类生层代理对象。
1.定义一个切入点表达式: 拦截哪些方法
<aop:pointcut expression="execution(* cn.itcast.g_pointcut.*.*(..))" id="pt"/>
2.拦截所有public方法
<aop:pointcut expression="execution(public * *(..))" id="pt"/>
3.拦截所有save开头的方法
<aop:pointcut expression="execution(* save*(..))" id="pt"/>
4.拦截指定类的指定方法, 拦截时候一定要定位到方法
<aop:pointcut expression="execution(public * cn.itcast.g_pointcut.OrderDao.save(..))" id="pt"/>
5.拦截指定类的所有方法
<aop:pointcut expression="execution(* cn.itcast.g_pointcut.UserDao.*(..))" id="pt"/>
6.拦截指定包,以及其自包下所有类的所有方法
<aop:pointcut expression="execution(* cn..*.*(..))" id="pt"/>
7.多个表达式
|| 或
<aop:pointcut expression="execution(* cn.itcast.g_pointcut.UserDao.save()) || execution(* cn.itcast.g_pointcut.OrderDao.save())" id="pt"/>
or 或
<aop:pointcut expression="execution(* cn.itcast.g_pointcut.UserDao.save()) or execution(* cn.itcast.g_pointcut.OrderDao.save())" id="pt"/>
and 与 【语法通顺,但是永远都不会指定到,无意义】
<aop:pointcut expression="execution(* cn.itcast.g_pointcut.UserDao.save()) and execution(* cn.itcast.g_pointcut.OrderDao.save())" id="pt"/>
取非值
<aop:pointcut expression=" not execution(* cn.itcast.g_pointcut.OrderDao.save())" id="pt"/>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="userDao" class="cn.itcast.g_pointcut.UserDao"></bean>
<bean id="orderDao" class="cn.itcast.g_pointcut.OrderDao"></bean>
<bean id="aop" class="cn.itcast.g_pointcut.Aop"></bean>
<aop:config>
<aop:pointcut expression=" not execution(* cn.itcast.g_pointcut.OrderDao.save())" id="pt"/>
<aop:aspect ref="aop">
<aop:around method="around" pointcut-ref="pt"/>
</aop:aspect>
</aop:config>
</beans>