AOP操作术语
Spring的aop操作
1、在spring里面进行aop操作使用aspectj实现、
(1)aspectj不是spring一部分,和spring一起使用进行操作
(2)spring2.0以后新增了对AspectJ支持
2、使用aspectj实现aop 有两种方式
(1)基于aspectj的xml配置
(2)基于aspectj的注解方式
AOP准备工作
1、除了导入基本jar包外,还需要导入aop相关的jar包
2、创建spring核心配置文件,导入aop约束
查找约束的方法和之前相同
使用表达式配置切入点
1、切入点:实际增强的方法
2、常用表达式
execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
访问修饰符:private、public、protect,一般写*星号,表示任意秀舒服,代表都可以访问。
(1)第一种方法:execution(* cn.itcast.aop.Book.add(…))
cn.itcast.aop包名
Book类名
add(…)实际增强的方法,两个点点代表方法中的参数
execution(* cn.itcast.aop.Book.add(…))就表示要增强cn.itcast.aop包的Book类的add()方法
(2)第二种方法:execution(* cn.itcast.aop.Book.*(…)) 表示对该类中的所有方法增强
(3)第三种方法:execution(* *.*) 表示所有类中的所有方法增强
(3)第三种方法:execution(* save*.*(…)) 表示匹配以save开头的所有类中的所有方法增强
注:参数是两个点,不是三个点
AspectJ的AOP操作
配置文件
Book类
MyBook类
测试方法
测试结果
2、后置增强
在后置增强中Book类和测试类中的代码不变
配置文件
MyBook类
测试结果
3、环绕通知
Book类和测试类代码不变
配置文件:
MyBook类中的环绕通知的方法
测试结果:
log4介绍
1.通过log4j可以看过程序运行过程中更详细的信息
(1)经常使用log4j查看日志
2.使用方法
(1)导入log4j的jar包
(2)把log4j的配置文件复制到src目录下
3.设置日志级别
(1)info看到基本信息
(2)debug可以看到更详细的信息
Spring整合web项目
1、演示问题
(1)action调用service,service调用dao
UserAction类
UserService类
UserDao类
(2)配置文件
spring.xml
struts.xml
web.xml
(3)运行结果