JDBC

JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。

有什么用:有了JDBC就可以用统一的语法对多种关系数据库进行访问(即可以访问数据库)

详情请打开如下链接

JDBC是什么_顺其自然~的博客-CSDN博客_jdbc是什么

MyBatis

是一个ORM框架(Object Ralational Mapping) 对象关系映射

Mybatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身。我们原来使用JDBC操作数据库,需要手动的写代码去注册驱动、获取connection、获取statement等等,现在Mybaits帮助我们把这些事情做了,我们只需要关注我们的业务sql即可,这样可以提高我们的开发效率

对jdbc进行封装,使我们不用花费精力去操作开启连接池之类的事(在配置文件配置即可),只用专注于编写sql语句本身即可。

MyBatis执行流程:

1、读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。

2、加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在MyBatis 配置文件 mybatis-config.xml 中加载。

mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。

3、构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。

4、创建会话对象:由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。

5、Executor执行器:MyBatis底层定义了一个Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。

6、MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。

7、输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。

8、输出结果映射:输出结果类型可以是 Map、 List 等集合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。

获取sqlsession =》 通过sqlsession获取mapper =》 执行sql查询,获取结果

Spring

1、什么是Spring:

*Spring是一个轻量级的IoC和AOP容器框架。

* Spring 是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架,以IoC(Inversion of Control控制反转,目的是解耦)和AOP(面向切面编程,本质是动态代理,目的是增强)为内核

* Spring家族有很多的框架,涉及到所有层(web |service |dao)

* 今天学的Spring仅仅是Spring家族里面的其中一个框架 Spring Framework (IOC +  AOP)

* 提供了:

* 表现层(web层): Spring MVC

* 业务层(service层) : Spring

* 持久层(Dao层):Spring  JDBCTemplate, Spring Data JPA

* 能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

2、Spring的优点:

(1)spring属于低侵入式设计,代码的污染极低;

(2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性;

(3)spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。

(4)spring对于主流的应用框架提供了集成支持。

3、IOC:(IOC不是一种技术,只是一种思想)

什么是IOC:IOC,Inversion of Control,控制反转,指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。即我们以前是自己主动去new一个对象来使用,而现在却是交由专门的容器来帮忙创建对象,将所有的类都在spring容器中登记,当需要某个对象时,不在自己去new,只需告诉spring容器,让spring容器把你需要的对象给你。也就是说,对于某个具体的对象而言,以前是由自己控制它所引用对象的生命周期,而在IOC中,所有的对象都被 Spring 控制,控制对象生命周期的不再是引用它的对象,而是Spring容器,由 Spring 容器帮我们创建、查找及注入依赖对象,而引用对象只是被动的接受依赖对象,所以这叫控制反转。

4、什么是Spring IOC容器:

4、什么是DI:

IoC 的一个重点就是在程序运行时,动态的向某个对象提供它所需要的其他对象,这一点是通过DI(Dependency Injection,依赖注入)来实现的,即应用程序在运行时依赖 IoC 容器来动态注入对象所需要的外部依赖。而 Spring 的 DI 具体就是通过反射实现注入的,反射允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性。

5、IOC的原理:

Spring 的 IoC 的实现原理就是工厂模式加反射机制。通过调用一个工厂类(beanfactory),而在这个工厂类里利用反射机制创建对象,将这个对象返回。

什么是Spring IOC容器_何妨徐行的博客-CSDN博客_什么是springioc容器

6、AOP:

AOP,面向切面思想。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码的编写方式(例如性能监视、事务管理、安全检查、缓存、日志记录等。

可以在不修改源码的情况下,进行功能增强。

7、AOP的底层原理:

底层是通过动态代理来实现的。在运行期间,通过代理技术动态生成代理对象,代理对象方法执行时进行功能的增强介入,再去调用目标方法,从而完成功能增强。

常用的动态代理技术有①JDK的动态代理(基于接口实现的);②cglib的动态代理(基于子类实现的);

如果目标对象有接口,就用JDK的动态代理技术,没有接口就用cglib的动态代理技术

SpringMVC

1、什么是Spring MVC ?简单介绍下你对springMVC的理解?(一个关于web层的框架)

是一个基于java的实现了MVC三层架构设计模式的请求驱动类型的轻量级Web框架。把model、view、controller分离,将web层进行职责解耦。它的作用简单来说就是接收请求,调用service,响应结果

SpringBoot

是什么:

是个框架,简化了spring初始搭建以及开发过程。

核心:

自动配置:针对很多spring应用程序和常见应用功能,springboot能自动提供相关配置。

起步依赖(starter):告诉springboot需要什么功能,它就能引入需要的依赖库。

springboot自动配置的原理 :

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration

会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了所有需要被创建spring容器中的bean

①SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration 。

②@EnableAutoConfiguration作用:

1)@AutoConfigurationPackage 就是将主配置类(@SpringBootApplication 标注的类)所在的包下面所有的组件都扫注册到 spring 容器中。

2)利用@Import(AutoConfigurationImportSelector.class)的AutoConfigurationImportSelector自动配置导入选择器里面的selectImports方法,此方法会返回一个字符串数组,数组里面放的是自动配置类的全路径,这些类的全路径被保存在META-INF/spring.factories文件里面,读取类路径名后都会被加载到spring的IOC容器中,spring在读到这些类的全路径的时候,就会把这些类通过反射的方式把它放到IOC容器中,那么这些类就全都变成了一个Bean。就可以用来做自动配置功能。

SpringBoot | 自动配置原理 - 简书 (jianshu.com)

SpringBoot自动配置_Orangefishs_的博客-CSDN博客_springboot自动配置

springboot自动装配原理:(@autowride)

简单来说就是自动把第三方组件的bean装载到IOC容器里面,不需要开放人员再去写bean相关的配置。只需要在启动类上面加上@SpringBootApplication注解就可以实现自动装配。@SpringBootApplication是一个复合注解,真正实现的是@EnableAutoConfiguration这个注解。

自动装配主要依靠三个核心技术:

①引入starter起步依赖组件的时候这个组件里面必须包含一个@Configuration配置类,而在这个配置类里面我们需要通过@bean这个注解去声明需要装配到IOC容器里面的Bean对象。

②第二个是这个配置类是放在第三方jar包里面,然后通过springboot中SpringFactoriesLoader去把这个类的全路径放在META-INF/spring.factories文件里面,这样的话springboot就可以知道第三方jar包这里面这个配置类的位置。

③springboot拿到所有第三方jar包里面声明的配置类以后,在通过spring提供的ImportSelector这样一个接口来实现对这些配置类的动态加载,从而去完成自动装配这样一个动作。

SpringCloud

是什么:

Spring Cloud是一系列框架的有序集合。是目前国内使用最广泛的微服务技术栈。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

分布式和微服务:

分布式:拆。将一个项目拆分成多个模块,并将这些模块分开部署,这就算是分布式。

微服务:粒度细的垂直拆分,一个微服务只负责解决一个业务问题,只做一件事。

小白概念构筑,java框架整合复习相关推荐

  1. php+java+框架整合_ThinkPhP+Apache+PHPstorm整合框架流程图解

    最近在学习使用 ThinkPhP,网上很多都是用一些整合好的服务框架,为了学习,在这里我简单的对Apache.PHP做一个原生的整合,希望对你有帮助. 步骤: ①下载 thinkPHP.PHP.Apa ...

  2. java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...

  3. 小白自学Java框架,框架的全面解析总结

    springmvc工作机制(原理) DispatcherServlet主要用作职责调度工作,本身主要用于控制流程 1.springmvc将所有的请求都提交给DispatcherServlet,它会委托 ...

  4. java ee ssh三大框架知识点_详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)...

    详解JAVAEE--SSH三大框架整合(spring+struts2+hibernate) 发布时间:2020-09-17 13:34:05 来源:脚本之家 阅读:64 作者:kent鹏 一.整合原理 ...

  5. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    Java框架搭建-Maven.Mybatis.Spring MVC整合搭建 1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/e ...

  6. 【java学习之路】(java框架)005.mybatis框架整合及逆向工厂

    03mybatis框架整合及逆向工厂 1.三大框架整合 ​ 在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的. 1. ...

  7. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  8. java web的ssh框架_JavaWeb_(SSH论坛)_二、框架整合

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块传送门 导入Jar包 导入 ...

  9. 2022年最值得学习的5款开源Java框架 小白教程

    自从1996年首发,至今25年以来,Java凭借在后端.大数据.机器学习.Web.Android等领域的应用,使其仍然占据着统治地位,长期占据全球最受欢迎编程语言前三名. 在Python.JavaSc ...

最新文章

  1. python 实现文本搜索_python根据BM25实现文本检索
  2. scihub只能用doi查吗_同步带轮齿形加工只能用滚齿机吗?
  3. java象棋人机代码_中国象棋人机对弈Java版源码
  4. python ju_如何使用jupy设置python路径
  5. servlet版本及容器和Java版本
  6. ASP.NET MVC Global.cs - 应用程序事件
  7. block的使用(六)
  8. 将某一类型文件还原为无默认打开方式
  9. 对于GetMemory()函数
  10. linux+模块与设备关系,linux内核设计与实现读书笔记——设备和模块
  11. Java新职篇:for循环
  12. phpcms 指定id范围 调用_Dubbogo 源码笔记(二)客户端调用过程
  13. 拓端tecdat|Python贝叶斯回归分析住房负担能力数据集
  14. IOS之拨打电话的三种方式
  15. Redis学习记录(菜鸟教程学习)
  16. Tyvj P1288 飘飘乎居士取能量块
  17. 终生学习者,永远劳苦命!
  18. android为什么会用流量,手机流量为什么会偷跑?
  19. (附源码)计算机毕业设计SSM基于框架的旅游管理系统
  20. Nachos线程管理

热门文章

  1. 融合与发展:数据科学研究院RONG研究员首次工作汇报会圆满结束
  2. Spring Boot-yaml格式,eureka客户端配置default-zone报错问题
  3. 浓浓塑料情:富士康薅苹果羊毛,库克偷偷找备胎
  4. STM32F429入门(十九):ROM RAM SRAM FLASH
  5. java中的静态成员变量_java中什么叫静态成员变量
  6. uni-app中的fieldset
  7. 快速入门丨篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
  8. Flutter windows程序窗口布满工作区
  9. pixi-老虎机实现
  10. 微信公众号搭建本地测试环境