小白概念构筑,java框架整合复习

        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实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

分布式和微服务:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值