Spring基础-AOP-切入点详解

第三章切入点详解

决定了额外功能的加入位置(方法)
	<aop:pointcut id="pc" expression="execution()"/>
	execution(* *(..)) >> 匹配了所有方法
	execution() 切入函数
	* *(..) 切入点表达式

1.切入点表达式

1.1方法切入点表达式
* *(..) -> 所有方法
* 修饰符 返回值
* 方法名  
(..) 参数列表

    
1.定义login方法做为切入点
    * login(..)
2.定义login方法且有两个字符串类型参数
    * login(String,String)
3.register(User user)
    * register(com.xia.User)
    自己定义的类需要填入全限定名
4.login(String,..) 
    除了第一个是String 剩下的都可以
5.User register(String name,String password)
	com.xia.User register(String,String)
6.全限定
	* com.xia.service.impl.UserService.login(String,String)
1.2类切入点
1.com.xia.service.impl.UserServiceImpl类中的所有方法
* com.xia.service.impl.UserServiceImpl.*(..)
2.不同包中相同类中的所有方法
	2.1类只存在一级包
	* *.UserServiceImpl.*(..)
	2.2类存在多级包
	* *..UserServiceImpl.*(..)
1.3包切入点
1.切入点包中的所有类只能在impl中而不能在子包中
	* com.xia.service.impl.*.*(..)
2.切入点包中的所有类只能在impl中和子包中
	* com.xia.service.impl..*.*(..)

2.切入点函数

1.execution()
	execution(* com.xia.service..*.*(..))
2.args()
	匹配方法名
	args(String,String)
	execution(* *(String,String))
3.within
	类,包切入点表达式匹配
	within(com.xia.service..*)
	within(*..UserServiceImpl)
4.@annotation
	为有特定注解的方法加入额外功能
	<aop:pointcut id="anno-pc" expression="@annotation(com.xia.Log)"/>

3.切入点逻辑运算

  1. and

    login(String name,String password)
    
    execution(* login(..)) and args(String,String)
        
    与操作不能用于同种类型的切入点函数
    
  2. or

    execution(* login()) or execution(* register())
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值