1.AOP 概念:
aop:面向切面(方面)编程,拓展功能不修改源代码实现
AOP采用横向抽取机制,取代了传统纵向继承体系复杂性代码
1.1 AOP原理:
画图分析原理
纵向机制:
横向机制:
1.2 AOP操作术语:
2.Spring的aop操作:
在spring里面进行aop操作,使用aspectj实现
aspectj不是spring一部分,和spring一起使用进行aop操作
spring2.0以后新增了对aspectj的支持
2.1 使用aspectj实现aop有两种方式:
基于aspectj的xml配置
基于aspectj的注解方式
2.2 AOP操作准备:
除了导入基本的jar包之外,还需要导入aop相关的jar包
创建spring核心配置文件,导入aop约束
2.3 使用表达式配置切入点:
切入点:实际增强的方法
常用的表达式
execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
execution(* com.cmt.aop.Book.add(..))
execution(* com.cmt.aop.Book.*(..))
execution(* *.*(..))
匹配所有save开头的方法 execution(* save*(..))
2.4 Aspectj的aop操作:
2.5 基于aspectj的注解aop:
第一步 创建对象
第二步 在spring核心配置文件中,开启aop操作
第三步 在增强类上面使用注解完成aop操作
3.Log4j介绍:
通过log4j可以看到程序运行过程中更详细的信息
经常使用log4j查看日志
3.1 使用:
导入log4j的jar包
复制log4j的配置文件,复制到src下面
设置日志级别
info:可以看到基本的日志信息
debug:可以看到更详细的信息
4.Spring整合web项目演示
4.1 演示问题:
action调用service,service调用dao
每次访问action的时候,都会加载spring配置文件
4.2 解决方案:
在服务器启动的时候,创建对象加载配置文件
底层使用监听器,ServletContext对象
4.3 在spring里面帮我们进行了封装
封装了一个监听器,只需要我们配置就可以了
配置监听器之前做事情,导入spring整合web项目的jar包
指定加载spring配置文件位置
如果不指定: