Spring框架4

回顾
代理模式: 静态代理,基于接口的动态代理,基于子类的动态代理
AOP: 面向切面编程
基于XML的AOP配置
基于XML结合注解的AOP配置
基于纯注解的配置
案例:使用AOP的形式完成事务控制

  1. JdbcTemplate
    增删改:update
    查询一个:queryForObject
    查询列表:query
    1.1 基于xml的配置方式一
    在这里插入图片描述
    1.2 数据库连接池
    1.2.1 Druid(重点)
    在这里插入图片描述
    1.2.2 C3P0
    1.2.2.1 依赖
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.2.1</version>
</dependency>

1.2.2.2 配置
在这里插入图片描述
1.2.3 DBCP
1.2.3.1 依赖

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.1.1</version>
</dependency>

1.2.3.2 配置
在这里插入图片描述
1.2.4 Spring内置的数据库连接池(重点)
在这里插入图片描述
1.3 基于xml的配置方式二
1.3.1 Dao需要继承JdbcDaoSupport
在这里插入图片描述
1.3.2 Dao依赖于datasource
在这里插入图片描述
1.3.3 查询数据库
在这里插入图片描述
1.4 基于注解结合xml的配置
 对象(自定义的对象,第三方的对象)
 注解需要开启支持(包扫描)
1.4.1 自定义的对象
在这里插入图片描述
1.4.2 第三方的对象
在这里插入图片描述
1.5 基于纯注解的配置
在这里插入图片描述
2. Spring中的事务(声明式事务)
声明式事务 : 是spring由AOP机制衍生的一个处理事务问题的配置方式
在这里插入图片描述
2.1 事务的API对象
2.1.1 事务管理器(PlatformTransactionManager)
事务管理器: 处理事务的AOP中的切面类
方法 : 提交,回滚
事务管理器 : PlatformTransactionManager接口
在这里插入图片描述
2.1.2 事务监控对象(运行状态)TransactionStatus
在这里插入图片描述
2.1.3 事务配置对象TransactionDefinition
TransactionDefinition: 用于配置事务属性
2.1.3.1 事务隔离级别
事务 : 逻辑上的一组操作要么同时成功,要么同时失败
特性 : 原子性,隔离性,一致性,持久性
在不考虑隔离性的前提下的问题 : 脏读,不可重复度,幻读
设置隔离级别
Read UnCommited
Read commited
Repeatable read (mysql的默认隔离级别)
SERIALIZABLE

事务隔离级别 : 默认即可
2.1.3.2 超时时间
超时时间:在规定的范围时间内,如果多个数据库操作没有执行完成,会抛出异常.
保持默认(-1) : 永不超时
2.1.3.3 传播行为
传播行为:在多个方法嵌套调用的时候,配置被调用方法对事务的要求情况
在这里插入图片描述
2.1.3.4 是否只读事务
只读事务 : 只会处理查询操作
非只读事务 : 只会处理增删改操作
ReadOnly : true|false
2.1.3.5 配置总结
查询 :
传播行为 : SUPPORTS
是否只读 : TRUE
增删改:
传播行为 : REQUIRED
是否只读 : false

2.2 基于XML的事务配置(重点)
2.2.1 事务管理器交给spring容器
在这里插入图片描述
2.2.2 事务通知
在这里插入图片描述
2.2.3 配置事务AOP
在这里插入图片描述
2.3 基于XML结合注解的事务配置(重点)
2.3.1 开启对注解事务的支持
在这里插入图片描述
2.3.2 事务管理器交给spring容器管理
在这里插入图片描述
2.3.3 在需要事务的类或者方法上配置@Transactional
在这里插入图片描述
2.4 基于纯注解的事务配置(了解)
2.4.1 开启对注解事务的支持
在这里插入图片描述
2.4.2 事务管理器交给spring容器管理
在这里插入图片描述
2.4.3 需要事务的类或者方法上配置@Transactional
在这里插入图片描述
3. Spring整合Mybatis
Mybatis : 使用xml进行配置
Spring : 使用注解结合xml进行配置

整合步骤:

  1. 保证mybatis可以独立运行(搭建mybatis环境)
    基于动态代理的形式使用mybatis
  2. 保证spring可以独立运行(搭建springIOC环境)
  3. 整合Spring和Mybatis
    3.1 坐标
<dependencies>
    <!--jdbc-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>

    <!--mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <!--datasource-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.9</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>

    <!--aop坐标-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
    <!--aspectJ : 表达式语言的jar包-->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.6.8</version>
    </dependency>

    <!--junit-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <!--c3p0-->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.2.1</version>
    </dependency>
    <!--dbcp-->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

3.2 整合Spring和Mybatis
 将mybatis的核心配置文件中的内容在spring中进行配置
 SqlSessionFactory , mapperSacnnerConfigurer, 事务
3.2.1 SqlSessionFactory
在这里插入图片描述
3.2.2 mapperSacnnerConfigurer
在这里插入图片描述
3.2.3 事务
在这里插入图片描述
面试总结
事务
作业:

  1. 基于两种配置(xml | xml+注解)方式完成转账 : jdbctemplate,事务
  2. 整合(可选)
  3. 预习springmvc第一天
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值