了解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测试所有业务逻辑层代码

原文地址:https://www.cnblogs.com/h-w-b/p/12841272.html