Spring集成MyBatis

回顾当前配置下的加载顺序

1. MyBatis的主配置文件mybatis-config.xml 和 工具类MyBatisUtil

2. Mapper文件

3. Dao接口

4. Service接口

5. Service实现

6. 测试端

Spring集成MyBatis+MyBatisUtil

步骤

1. 添加Spring,MyBatis相关jar包 共计24个

2. 复制主配置文件applicationContext.xml,部分命名空间

3. 测试一个UserService例子

替代mybatis-config.xml 主配置文件的功能

使用Spring来集成该功能,Spring的IOC来替MyBatis生成工厂的特殊对象

创建数据连接,即数据源取代标签组

创建工厂 取代标签组和MyBatisUtil 工具类

加载JDBC的配置文件 独立配置文件

修改为动态参数

测试打印 SqlSessionFactory

完成MyBatis对象的引入

版本1:IOC创建,管理Dao,Service 层

使用Spring IOC 获得dao对象,同时注入sqlSession配置

使用Spring IOC 创建service对象,并持有dao对象的引用

service层的实现类,持有dao对象的引用,并创建对应的set和get方法

完成ProductService的查询例子

1. 检查原 MyBatisUtil工具类,依靠代理创建的对象

2. 对比Spring IOC创建的对象

3. 两者类型一致,说明Spring IOC创建的dao 对象

底层实现:SqlSession的MapperProxy代理实现

4. Spring-IOC 创建的sqlSessionFactory对象,会自动完成事务的提交和流的关闭

移除mybatis-config.xml 配置文件,MyBatisUtil工具类,及相关配置

版本2:dao层的动态代理

1. 特殊类MapperScannerConfigurer根据value值,找到接口的包

2.将该包下所有的接口类名,改为 标准的对象引用命名(驼峰命名)

3. 通过自动装配byType,实现自动注入SqlSession对象

4.spring 容器中拥有这些 标准的对象引用名,可以直接被引用

5.底层实现:SqlSession的MapperProxy代理实现

Service层的自动装配

开启注解扫描,扫描Service的接口层

Service实现类标注注解

@Autowired 底层实现: 反射+无参构造方法

Service自动装配Dao对象,默认按照id自动装配productDao

不再需要productService的bean标签和set/get方法了

Spring的专属Junit

总结:

1. Dao层的对象创建的底层实现,是MyBatis框架下的SqlSession对象,依靠MapperProxy动态代理技术实现 byName

2.Service层的对象创建的底层实现,是由注解@Service发起,依赖Spring-IOC 的bean-type来创建。再底层细致,就是反射+无参构造方法 byType

3. 层与层之间都必须有需要有Spring bean 的定义(不管是显示定义,还是隐藏定义)

4.类与类之间的依赖 :

原始是通过在配置文件里写明ref实现;

升级后,靠注释自动装配@Autowired实现,但是底层还是靠ref实现

集成web

web.xml添加监听,用来加载Spring的主配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值