Spring面向aop切面编程
Spring所需要jar
注解方式配置切面
spring目标类
此类中的方法都可以进行拦截
execution(* cn.itcast.service..*.*(..))
含义:
<!--[if !supportLists]-->① <!--[endif]-->execution是执行这个表达式,执行业务方法要进行拦截。
<!--[if !supportLists]-->② <!--[endif]-->*表示返回值的类型,表示方法返回任意类型
<!--[if !supportLists]-->③ <!--[endif]-->cn.itcast.service表示包名
<!--[if !supportLists]-->④ <!--[endif]-->..表示对于子包也要进行拦截
<!--[if !supportLists]-->⑤ <!--[endif]-->*表示这个包下的类,表示包下的所有类
<!--[if !supportLists]-->⑥ <!--[endif]-->*表示包下的方法,所有方法
<!--[if !supportLists]-->⑦ <!--[endif]-->(..)表示参数任意,有也可以没有也可以
aop各种通知
通知简单
通知配置返回值
@Test
Xml方式配置切面
aop切面通知
该类里面没有任何注解
Xml切面的配置
先把切面和目标对象交个spring,然后配置切面。
表达式语言
<!--[if !supportLists]-->1. <!--[endif]-->拦截返回值string类型的方法
2. 要求方法参数第一个为string
3. 拦截返回值非void的所有方法
4. 对cn.itcast.service下的类以及子包下的所有类进行拦截