1、切入点表达式
1)匹配类型
用于匹配哪些类型的方法启用方面组件,语法格式如下
within(类型)
--匹配容器中HibernateCostDaoImpl的所有方法
within(com.tarena.dao.HibernateCostDaoImpl)
--匹配com.tarena包下所有类的所有方法
within(com.tarena.*)
--匹配com.tarena包及子包的所有类的所有方法
within(com.tarena..*)
2)匹配方法
用于匹配哪些方法启用方面组件,语法格式如下
execution(修饰符? 返回类型 方法名(参数列表) throws异常?)
--匹配所有对象的delete方法
execution(* delete(..))
--匹配HibernateCostDaoImpl的delete方法
execution(* com.tarena.dao.HibernateCostDaoImpl.delete(..))
--匹配HibernateCostDaoImpl的所有方法
execution(* com.tarena.dao.HibernateCostDaoImpl.*(..))
--匹配com.tarena包下所有类的所有方法
execution(* com.tarena.*.*(..))
--匹配com.tarena包及子包下所有类的所有方法
execution(* com.tarena..*.*(..))
3)匹配bean名称
用于匹配bean的id属性,语法格式如下
bean(id属性值)
--匹配id="costDao"的组件的所有方法
bean(costDao)
--匹配所有id以Dao结尾的组件的所有方法
bean(*Dao)
4)匹配参数
用于匹配参数类型和个数,代码格式如下
args(参数列表)
--匹配有一个参数并且为String类型的所有方法
args(java.lang.String)