Spring集成MyBatis
步骤:
- 添加Spring,MyBatis的相关jar包
- 添加applicationContext.xml配置文件
- 测试一个ProductService例子
替代mybatis-config.xml 主配置文件的功能(使用Spring来集成该功能,Spring的IOC代替MyBatis生成工厂的特殊对象)
- 加载JDBC的配置文件 独立配置文件
- 创建数据连接,即数据源取代environments标签组
- 创建工厂 取代mappers标签组和MyBatisUtil工具类
- 测试打印 SqlSessionFactory完成MyBatis对象的引入
检查原 MyBatisUtil工具类依靠代理创建的对象,对比Spring IOC创建的对象两者类型一致,说明Spring-IOC跟MyBatisUtil工具类创建dao对象的底层实现相同
Dao层的动态代理
1.使用Spring-IOC创建dao对象,同时注入sqlSession配置
Service层的动态代理
使用Spring-IOC创建service对象,并持有dao对象的引用
Service层的实现类,持有dao对象的引用,并创建对应的set和get方法
底层实现:SqlSession的MapperProxy代理实现
注:Spring-IOC 创建的sqlSessionFactory对象,会自动完成事务的提交和流的关闭