Spring切入点表达式

来源:互联网 发布:阿贝成像原理实验数据 编辑:程序博客网 时间:2024/05/17 01:03

execution 其格式为:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?) 

returning type pattern,name pattern, parameters pattern是必须的。

ret-type-pattern:可以为*表示任何返回值,全路径的类名等.。

name-pattern:指定方法名,*代表所有,set*代表以set开头的所有方法。

parameters pattern:指定方法参数(声明的类型),(..)代表所有参数,(*)代表一个参数,(*,String)代表第一个参数为任何值,第二个为String类型。

<?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: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">    <!--DAO实例-->    <bean id="userDao" class="AopForXML.UserDao"></bean>    <bean id="orderDao" class="AopForXML.OrderDao"/>    <!--切面类实例-->    <bean id="myAop" class="AopForXML.MyAop"/>    <!--Aop配置-->    <aop:config>        <!--定义一个切入点表达式:拦截那些方法-->        <!--<aop:pointcut id="pt" expression="execution(* AopForXML.*.*(..))"/>-->        <!--拦截所有public方法-->        <!--<aop:pointcut id="pt" expression="execution(public * *(..))"/>-->        <!--拦截所有set开头的方法-->        <!--<aop:pointcut id="pt" expression="execution(* set*(..))"/>-->        <!--拦截所有save开头的方法-->        <!--<aop:pointcut id="pt" expression="execution(* save*(..))"/>-->        <!--拦截指定类的指定方法-->        <!--<aop:pointcut id="pt" expression="execution(* AopForXML.OrderDao.save())"/>-->        <!--<aop:pointcut id="pt" expression="execution(public * AopForXML.OrderDao.save())"/>-->        <!--拦截指定类的所有方法-->        <!--<aop:pointcut id="pt" expression="execution(public * AopForXML.OrderDao.*())"/>-->        <!--拦截指定包以及其子包下所有类的所有方法-->        <!--<aop:pointcut id="pt" expression="execution(* AopForXML..*.*(..))"/>-->        <!-- 多个表达式-->        <!--<aop:pointcut id="pt" expression="execution(* AopForXML.UserDao.save()) ||        execution(* AopForXML.OrderDao.save())"/>        <aop:pointcut id="pt" expression="execution(* AopForXML.UserDao.save()) or        execution(* AopForXML.OrderDao.save())"/>-->        <!--取非值,不想拦截-->        <!--<aop:pointcut id="pt" expression="!execution(* AopForXML.UserDao.save())"/>-->        <aop:pointcut id="pt" expression=" not execution(* AopForXML.UserDao.save())"/>        <!--切面-->        <aop:aspect ref="myAop">            <aop:before method="begin" pointcut-ref="pt"/>            <aop:after method="commite" pointcut-ref="pt"/>            <!--返回后通知-->            <aop:after-returning method="afterReturning" pointcut-ref="pt"/>            <!--异常通知-->            <aop:after-throwing method="afterThrowing" pointcut-ref="pt"/>            <!--环绕通知-->            <aop:around method="around" pointcut-ref="pt"/>        </aop:aspect>    </aop:config></beans>

0 0
原创粉丝点击