Spring-第三章

Spring-第三章

 

还原web项目的Test_Shop到Test_Shop_SM

Spring集成MyBatis+MyBatisUtil

步骤

1. 添加Spring,MyBatis相关jar包

参见共享,\Test_Shop_SM\jars

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

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

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

 

Spring的专属Junit

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

 

总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值