Spring配置文件

1. Bean的解耦调用

2. Bean的创建时机

3. Bean的生命周期

4. Bean实例化的三种方式

Spring依赖注入

1.UserDao怎么注入都UserService

  • 构造方法

  • set方法

2.Bean的依赖注入的数据类型

  • 普通数据类型
  • 集合数据类型
  • 引用数据类型

Spring相关Api

ApplicationContext的实现类

getBean()方法使用

  • 第一种是通过id获取(允许当前容器存在多个相同类型的bean)
  • 第二种是通过class获取(只能当前容器存在一个相同类型的bean)

Spring配置数据源

数据源(连接池)的作用

  • 提高程序性能
  • 实现实例化数据源 初始化部分连接资源
  • 使用连接资源时从数据源获取
  • 使用完毕将连接资源归还给数据源

常见数据源:DBCP、C3P0、Druid

数据源的开发步骤

  1. 导入数据源坐标和数据库驱动坐标
  2. 创建数据源对象
  3. 设置数据源基本的连接数据
    1. 驱动
    2. 地址
    3. 用户名
    4. 密码
  4. 使用数据源,归还数据源资源

以上参数可以放到yml里

Spring注解开发

原始注解

新注解

AOP

AOP的原理

实现动态代理

  • JDK动态代理(需要一个接口)
  • CGLIB动态代理(依据父类实现)

AOP相关概念

  • Target 目标对象:被代理的对象
  • Proxy 代理:结果代理类
  • JoinPoint 连接点:切点,即切面类中的方法,也是可以被增强的方法
  • Pointcut 切入点:切点表达式,被增强的方法
  • Advice 通知:拦截到JoinPoint之后要做的事情
  • Aspect 切面:切入点+通知的结合
  • Weaving 织入:将切面类中的通知方法,织入到目标对象中的连接点中,并生成代理对象的过程方法

AOP开发明确的事项

  1. 需要编写的内容
  • 编写核心业务代码(目标方法)
  • 编写切面类(增强功能)
  • 在配置文件中配置织入关系,即:将那些通知与哪些连接点进行结合
  1. AOP技术实现的内容

Spring 框架监控切入点方法的执行。一旦监控到切入点方法被运行,使用代理机制,动态创建目标对象的代理对象,根据通知类别,在代理对象的对应位置,将通知对应的功能织入,完成完整的代码逻辑运行。

  1. AOP底层使用哪种代理方式

在Spring中,框架会根据目标类是否实现了接口来决定使用哪种代理方式

切点表达式的写法

通知种类

基于注解的AOP开发

事务管理

作用:不侵入开发组件,解耦开发。
底层原理:AOP

编程式事务控制三大对象

事务隔离级别

  • 读未提交
  • 读已提交
  • 可重复读
  • 串行化

事务传播行为

TransactionStatus

基于xml的声明式事务控制

基于注解的声明式事务控制

Mybatis

原始jdbc操作的分析

MyBatis的映射文件概述