execution(* *..BookManager.save(..))的解读:
第一颗* 代表ret-type-pattern 返回值可任意,
*..BookManager 代表任意Pacakge里的BookManager类。
如果写成com.xyz.service.* 则代表com.xyz.service下的任意类
如果写成com.xyz.service.*.* 则代表com.xyz.service下的任意类的任意方法
com.xyz.service..*
com.xyz.service则代表com.xyz.service及其子package下的任意类
save代表save方法,也可以写save* 代表saveBook()等方法
(..) 匹配0个参数或者多个参数的,任意类型
(x,..) 第一个参数的类型必须是X
(x,,,s,..) 匹配至少4个参数,第一个参数必须是x类型,第二个和第三个参数可以任意,第四个必须是s类型。

转自:http://blog.sina.com.cn/s/blog_4df1cf3d0100ljm4.html

最新文章

  1. Tomcat 常用配置及网站部署
  2. maven创建子项目(适用于多模块管理项目)
  3. 配置和创建一个hibernate简单应用
  4. Unbunt vi 编辑器键盘按键不正确的一次经历与解决方案
  5. ios8调用相机报警告: Snapshotting a view that has not been rendered results in an empty snapshot. Ensure you(转)
  6. navicat 连接oracle
  7. Scrapy:Python的爬虫框架
  8. HDU1700:Points on Cycle
  9. HDOJ 1755 - A Number Puzzle 排列数字凑同余,状态压缩DP
  10. POJ 半平面交 模板题 三枚
  11. 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome
  12. 6.Nginx作为负载均衡服务器应用
  13. HighChar 案例
  14. ionic3 应用内打开第三方地图导航 百度 高德
  15. Java自定义线程池-记录每个线程执行耗时
  16. 深入React技术栈之初入React世界
  17. SSH(Struts、Spring、Hibernate)三大框架整合
  18. C#中一道关于多线程的编程题
  19. ubuntu 14.04 返回到经典桌面方法
  20. Redis 缓存穿透,缓存击穿,缓存雪崩的解决方案分析

热门文章

  1. [LeetCode 题解]: Remove Duplicates from Sorted List
  2. Windows上传文件到linux 使用winscp
  3. .net Timer定时执行
  4. 「HNOI 2014」 江南乐
  5. 【04】循序渐进学 docker:Dockerfile
  6. boost::string 例题1
  7. tf-idf sklearn
  8. “全栈2019”Java第七十八章:内部类可以继承其他类吗?
  9. 【sonar-block】Use try-with-resources or close this "BufferedInputStream" in a "finally" clause.
  10. Shell中反引号和$()的区别