• 了解Spring


    Spring-第三章

     

    还原web项目的Test_Shop到Test_Shop_SM

    Spring集成MyBatis

     

    步骤

    1. 添加Spring,MyBatis相关jar包

    参见共享,Test_Shop_SMjars

    2. 复制applicationContext.xml,修改部分命名空间

     

    3. 测试一个ProductService例子

     

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

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

    2. Mapper文件

    3. Dao接口

    4. Service接口

    5. Service实现

    6. 测试端

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

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

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

     

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

     

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

     

    修改为动态参数

     

    测试打印 SqlSessionFactory

     

    完成MyBatis对象的引入

    版本1:

    使用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实现类标注注解

     

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

     

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

    Spring的专属Junit

     

    总结:

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

           2. Service层的对象创建的底层实现,是依赖Spring-IOC 的bean-id来创建,不管是显示bean,还是自动装配。再底层细致,就是反射+无参构造方法

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

           4. 类与类之间的依赖 :

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

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

           5. Spring的发展是代码和配置文件越来越简洁,通用代码被隐藏,但功能越来越强;

             就像是社会的发展,原始是手工劳作,现在是机器自动化。

    集成web

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

     

    标准配置文件路径

    1. 将配置文件放入config文件夹 (日志配置文件保留在根目录)

    2. 修改web.xml的监听路径

    3. 修改applicationContext.xml的jdbc.properties路径

    4. 修改SpringJunit 的注解applicationContext.xml路径

    Test_Shop升级Spring架构

    1. Spring集成MyBatis框架,删除mybatis-config.xml和MyBatisUtil.java

    2. 修改Tesh_Shop_SM的业务逻辑层

    3. 使用SpringJunit测试所有业务逻辑层代码

  • 相关阅读:
    组合模式
    C#+ArcEngine中com对象的释放问题
    备忘录模式
    C#中的DataSet添加DataTable问题
    jenkins从节点
    jenkins Publish over SSH
    jenkins凭据
    jenkins maven项目
    jenkins部署-docker
    zabbix api
  • 原文地址:https://www.cnblogs.com/h-w-b/p/12841272.html
Copyright © 2020-2023  润新知