用于描述方法 【掌握】

语法:execution(修饰符  返回值  包.类.方法名(参数) throws异常)

修饰符,一般省略

public                公共方法

*                        任意

返回值,不能省略

void                   返回没有值

String                返回值字符串

*                       任意

包,[省略]

com.gyf.crm                      固定包

com.gyf.crm.*.service    crm包下面子包任意 (例如:com.gyf.crm.staff.service)

com.gyf.crm..                   crm包下面的所有子包(含自己)

com.gyf.crm.*.service..  crm包下面任意子包,固定目录service,service目录任意包

类,[省略]

UserServiceImpl                       指定类

*Impl                                          以Impl结尾

User*                                          以User开头

*                                                  任意

方法名,不能省略

addUser                                     固定方法

add*                                                    以add开头

*Do                                             以Do结尾

*                                                  任意

(参数)

()                                                  无参

(int)                                             一个整型

(int ,int)                                       两个

(..)                                                参数任意

throws ,可省略,一般不写

案例1

execution(* com.gyf.crm.*.service..*.*(..))

 

案例2:或

<aop:pointcut expression="execution(* com.gyf.crm.service.*.*(..)) ||

                          execution(* com.gyf.*Do.*(..))" id="myPointCut"/>

示例:

    <!--  配置UserService-->
<bean id="userService" class="com.gyf.service.UserServiceImpl"></bean>
<bean id="studentService" class="com.gyf.service.StudentService"></bean> <!-- 配置切面类对象-->
<bean id="myAspect" class="com.gyf.aspect.MyAspect"></bean> <!-- 全自动AOP配置
1.在bean中配置aop约束
2.配置aop:conifg内容,把切入点和通知结合 proxy-target-class:使用cglib实现代理
expression 表达式:*任意
execution(* com.gyf.service.*. * (..))
返回值 包名 类名 方法名 参数
-->
<aop:config proxy-target-class="true">
<!-- 切入点:
expression:表达式
每个service的方法前面都开启事务和结束事务 AOP:用于事务配置&日志记录
-->
<aop:pointcut id="myPointcut" expression="execution(* com.gyf.service.*.*(..))"/> <!-- 通知 关联 切入点-->
<aop:advisor advice-ref="myAspect" pointcut-ref="myPointcut"></aop:advisor>
</aop:config>

最新文章

  1. 异步方法的意义何在,Async和await以及Task的爱恨情仇,还有多线程那一家子。
  2. PHP+JQUEY+AJAX实现分页【转】
  3. 图片垂直居中 和 float
  4. oracle存储过程--导出数据库表的说明文档
  5. wex5 教程 之 图文讲解 登陆,注册,页面跳转
  6. 小程序 - c字符串表示大整数
  7. mount loop最大数的调整
  8. 使用JavaScript实现分页效果
  9. Android自定义View基础
  10. Python 3.3 try catch所有的错误Error,不包括Exception。关键在于 sys.exc_info()
  11. Linxu指令--crond
  12. 新概念英语(1-123)A trip to Australia
  13. Html5弹幕视频播放器插件
  14. Vim实用技巧系列 - 利用百度云和git实现vim配置多机共享
  15. python模块之imghdr(识别不同格式的图片文件)
  16. python 判断一个对象的变量类型
  17. react native 淘宝镜像
  18. 自定义oncontextmenu
  19. Kali-linux绕过Utilman登录
  20. element popover 不显示/不隐藏问题解决方法

热门文章

  1. [BZOJ1902]:[NOIP2004]虫食算(搜索)
  2. C# 前台和后台POST提交信息的实现方法
  3. Servlet的常见错误
  4. LinkedList Stack
  5. 使用collection:分段查询结果集
  6. 红帽虚拟化RHEV-架构简介
  7. 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
  8. 测开之路一百四十三:ORM框架之SQLAlchemy模型及表创建
  9. Java面试题集(131-135)
  10. 【HANA系列】SAP HANA Studio出现&quot;Fetching Children...&quot;问题