问答详情
源自:5-6 Introductions应用

​关于栗子中types-matching=“com.imooc.aop.schema.advice.biz.*(+)”的两点疑问。

关于栗子中types-matching=“com.imooc.aop.schema.advice.biz.*(+)”的两点疑问。

  1. types-matching匹配的应该是类层面的吧这里也可以匹配方法吗?

  2. com.imooc.aop.schema.advice.biz.*(+),‘+’号应该是匹配大于1次吧?这里是否意味着匹配有参数的方法,或者因为+号前边什么也没有所有匹配无餐的方法?

提问者:CGJ_M 2017-03-24 00:31

个回答

  • 精慕门1546425
    2018-07-20 18:05:22

    这个地方,老师应该讲错了。

    types-matching是用来匹配类型的,无关方法。在Spring官方文档中,“The value of the types-matching attribute is an AspectJ type pattern ”

    但是,AspectJ语言关于type pattern的介绍中,通配符方面,没有看到独立使用+加号的含义。。。。

    老师案例中,可以做两个测试:

    1、将(+)去掉,一样可以正常执行。

    2、如果匹配到方法,是会报错的。


  • 橙子111000
    2018-04-21 22:13:15

    * :匹配单个任意字段
    .. :匹配多个任意字段(在类型匹配模式中匹配多个任意子包)(在方法参数匹配模式中匹配多个任意参数)
    +:匹配指定类的子类(仅在类型匹配模式中作为后缀)

  • 水木星火
    2017-03-25 13:57:35

    就是匹配com.imooc.aop.schema.advice.biz这个包下的所有类的所有方法,不论什么参数和方法都匹配