Spring(四)

Spring IOC [构造器\静态工厂\工厂方法]
DI [构造器注入\set方法注入\p命名空间注入\SPEL表达式]
注解配置方式

component-scan
Component[Controller\Service\Repository]
Autowired Qulifired Resource[jar包]
Value
Scope init-method[PostConstruct]
destroy-method[PreDestroy]

Bean Configruation Import PropertySource
ComponentScan[s]

Spring AOP
切入点\通知\切面\织入\代理对象\目标对象
通知种类: 前置通知 后置通知 后置通知/异常后置通知
环绕通知

<aop:config>
<aop:pointcut expression='execution()'>

<aop:aspect>- 不同的通知种类+切入点

Spring对于事务管理 -> Spring AOP技术

事务: 业务层面上不可分割的最小单位
特性: 原子性 一致性 隔离性 持久性
并发问题: 脏读 幻读[增删] 不可重复读[修改]
隔离级别: 读未提交 读已提交 可重复度 串行化

Spring事务管理的通知 PlatformTransactionManager
JdbcTemplate -> DataSourceTransactionManager
Hibernate5 -> Hibernate5TransactionManager

Spring 对于事务管理的属性设置:
1.隔离级别
2.传播行为
3.只读性 只有查询操作只读

Spring事务管理的准备工作:
1.数据库,实体类 account
2.dao层 JdbcTemplate
decreaseMoney(int srcId, double money)
increaseMoney(int destId, double money)
3.service层 转账业务
transfer(int srcId, int destId, double money)
dao.decreaseMoney
dao.increaseMoney
4.测试类 - 调用service.transfer方法

考虑Spring对于事务的管理 - AOP原理
1.通知类 DataSourceTransactionManager
2.切入点
3.事务属性设置 <tx:advice>

Spring 新特性
Spring + Mybatis整合 SSM

1.主配置文件Configuration
别名, 属性集, 连接数据库环境, 注册Mapper映射文件
2.Mapper映射文件 - SQL语句
select insert update delete
if foreach where sql

key value
namespace.id

动态代理开发Dao层
	接口[方法] Mapper-sql语句
	1.接口和映射文件 必须在同一个包下, 名字要一致
	2.映射文件 中 namespace 必须是对应接口的全限定类名
	3.接口中的方法名, 和mapper中的sql标签的id名要一致
	4.方法参数类型, 和mapper中的parameterType类型一致
	5.方法返回值类型, 和mapper中的resultType类型一致
  1. a.读取配置文件 Resource
    b.构建者模式 创建了一个 SqlSessionFactory对象
    c.工厂模式 获得了一个 SqlSession对象
    d.动态代理模式 获得对应的Dao接口对象
    e.调用接口方法 操作数据库

MyBatis + Spring 整合步骤
1.jar包 mybatis-spring-xx
2.MyBatis 核心对象 交给Spring容器管理
SqlSessionFactory 注册到Spring容器中
Dao 注册到Spring容器中[注意点: 没有实现类]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值