目录
一、Mybatis概述
1、JDBC 缺点
二.什么是 Spring
1.Spring发展史
2. 核心概念
3. AOP 和 IOC 概念
4.Bean别名配置
5.代码演示
一、Mybatis概述
1、概念
MyBatis 是一款优秀的==持久层框架==,用于简化 JDBC 开发
MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
2013年11月迁移到 Github 官网:https://mybatis.org/mybatis-3/zh/index.html
2、持久层
负责将数据到保存到数据库的那一层代码。 以后开发我们会将操作数据库的Java代码作为持久层。而Mybatis就是对jdbc代码进 行了封装。
3、JavaEE三层架构:
表现层、业务层、持久层
4、框架
框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础之上构建软件编写更加高效、规范、通用、可扩展
1、JDBC 缺点
1、硬编码
注册驱动、获取连接
上图标1的代码有很多字符串,而这些是连接数据库的四个基本信息,以后如果要将 Mysql数据库换成其他的关系型数据库的话,这四个地方都需要修改,如果放在此处就意 味着要修改我们的源代码。
2、SQL语句
上图SQL语句就要进行更改。这也不方便后期的维护
3、操作繁琐
手动设置参数 手动封装结果集
上图标4的代码是对查询到的数据进行封装,而这部分代码是没有什么技术含量,而且特别耗费时间的。
二.什么是 Spring
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。
Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>==90%==
专业角度
==简化开发==,降低企业级开发的复杂性
==框架整合==,高效整合其他技术,提高企业级应用开发与运行效率
1.Spring发展史
![](https://img-blog.csdnimg.cn/45ab30643b814a7d85699553377bd4ac.png)
2. 核心概念
==IOC
(Inversion of Control)控制反转==
使用对象时,由主动new产生对象转换为由==外部==提供对象,此过程中对象创建
控制权由程序转移到外部,此思想称为控制反转。通俗的讲就是“==将new对象的权
利交给Spring,我们从Spring中获取对象使用即可==”
Spring技术对IoC思想进行了实现
Spring提供了一个容器,称为==IOC容器==,用来充当IoC思想中的“外部”
IOC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统
称为==Bean==
==DI(Dependency Injection)依赖注入==
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。
3. AOP 和 IOC 概念
IOC: Invert Of Control, 控制反转.
然后DI(依赖注入)其思想是一个对象获得依赖对象 . 由
传统new对象自己手工管理 ,反转成 Spring容器进行管理 ,这种控制权转移,我们叫做控制反
转, 而应用了 IOC 之后, 则是容器主动地将需要依赖Bean对象推送给它所管理的组件。叫依赖
注入
可以用来降低代码之间的耦合度。
Aspect Oriented Program, 面向(方面)切面的编程;
. AOP 是对传统 OOP(Object
Oriented Programming, 面向对象编程) 的补充.将日志记录,性能统计,安全控制,事务处
理,异常处理等代码从业务逻辑代码中
划分
出来,形成
切面类(Aspect)
,可以在
运行
主要业务
(Target)时把这些辅助业务通过
代理(
Proxy)
自动添加方法运行时(织入weaving),从而扩展
方法的功能。(
不用修改方法的源码,就可以增强方法功能
)
![](https://img-blog.csdnimg.cn/8a801d9095a44a49ac6420ffaa59ba5e.png)
![](https://img-blog.csdnimg.cn/38e8613c251041a894788305e295a881.png)
4.Bean别名配置
![](https://img-blog.csdnimg.cn/8b028f0076d54307a006ba5b9b90afb1.png)
![](https://img-blog.csdnimg.cn/43fd93ef19ae4eecb93c8cde92aa75e2.png)
5.代码演示
![](https://img-blog.csdnimg.cn/ceb6421517764819b6e551626e4b4b33.png)
![](https://img-blog.csdnimg.cn/140832d322f14514947285002ae1cf75.png)
![](https://img-blog.csdnimg.cn/a2d56b854120452d877966620f757999.png)
![](https://img-blog.csdnimg.cn/44b1b7eb76a2492b92eee70c22003a12.png)
![](https://img-blog.csdnimg.cn/f8794e431a8447db9c65f69b64945c06.png)
![](https://img-blog.csdnimg.cn/d7599721df2148e3acc7b511998f6c7f.png)
![](https://img-blog.csdnimg.cn/a1562cde4ea947ac8c8cbb044c55efed.png)