Spring家族

基本专业名词解释

1. JDBC(Java Database Connectivity):java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

2.ORM(Object Relational Mapping):即对象关系映射,是在pymysq之上又进行了一层封装,对于数据的操作,我们无需再去编写原生sql,取代代之的是基于面向对象的思想去编写类、对象、调用相应的方法等,ORM会将其转换/映射成原生SQL然后交给pymysql执行。
在这里插入图片描述
3.java Bean:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件。 符合一定规范编写的Java类,不是一种技术,而是一种规范。
JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件:1.有一个public默认构造器(例如无参构造器,)
2.属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
3.需要序列化。这个是框架,工具跨平台反映状态必须的。

开发过程:前台页面(可能是在一张表单Form里面填写数据) —— 保存 —— ajax传递到Controller层 —— 与JavaBean做映射,将这些数据保存到JavaBean中 —— 进入Service层,这里对数据进行一些逻辑操作和判断。

**4.JSP(JavaServer Pages java服务器页面)**是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

5.Java 中什么是配置文件?
Java中的配置文件名称一般都以“.properties”和“.xml”进行结尾,这些配置文件的结构都和Java的HashMap结构是一样的(键值对),其作用是通过修改配置文件来实现代码中的参数的更改,从而实现灵活变更参数。
@Configuration:声明配置类(从指定类中读取@Bean标记的方法,并以此创建Bean)

作者:chinesszz
链接:https://www.imooc.com/article/281375
来源:慕课网
本文首次发布于慕课网 ,转载请注明出处,谢谢合作

6.代理
在需要本类的地方,用另外一个代理类来实现本类的功能,同时又加上了一些和本类方法无关却需要的部分(例如事务处理、日志管理、权限控制等)。

为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法的运行时间、事务管理、等等,你准备如何做?
编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。
优点:如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类、还是代理类,这样以后很容易切换,譬如,想要日志功能时就配置代理类,否则配置目标类,这样,增加系统功能很容易,以后运行一段时间后,又想去掉系统功能也很容易。

7.在Spring中,BeanFacyory是Ioc容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。

8.实体层(entity层)
实体是就是Java中的O/R Mapping映射,即数据库中的一个表映射成对应的一个Java类,其中还有一个映射文件。给定一个较复杂的实体关系(如一对一,一对多,多对多)。 在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。
一般的实体类对应一个数据表,其中的属性对应数据表中的字段。

MVC三层架构

(三层架构这一部分来源:https://www.jianshu.com/p/6060d55784e1

什么是MVC:Model View Controller 模型、视图、控制器

早期开发

在这里插入图片描述
Servlet和JSP都可以写Java代码,为了易于维护和使用:
Servlet专注于处理请求,以及控制试图跳转。
JSP专注于显示数据。
用户直接访问控制层,控制层就可以直接操作数据库。
Servlet进行CRUD操作——>数据库
弊端:程序十分臃肿,不利于维护。
Servlet的代码中:处理请求和响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码。
架构:没有什么是加一层解决不了的。
通过调用JDBC来操作数据库

MVC三层架构

在这里插入图片描述
模型:用于存储数据以及处理用户请求的业务逻辑。
视图:向控制器提交数据,显示模型中的数据。
控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示。

entity层
A:entity就是属性类,通常定义在model层里面,相当于MVC的M层,属于数据模型层
B:一般得实体类对应一个数据表,其中的属性定义数据表中的字段,实体类的字段数量 >= 数据库表中需要操作的字段数量
dao层
A:dao层叫做数据访问层,全称为data access object,属于一种比较底层基础得操作,具体到对某个表得增删改查,换句话说,某个dao一定是和数据库中的某一张表一一对应的,而且其中也只是封装了增删改查得方法
service层
A:service层即为业务逻辑层,可以理解为对一个或者多个dao进行得再次封装,主要是针对具体的问题的操作,把一些数据层的操作进行组合,间接与数据库打交道(提供操作数据库的方法)。要做这一层的话,要先设计接口,再实现类。

1)Model
①业务处理:业务逻辑(Service)
②数据持久层:CRUD(Dao)

2)View
①展示数据。
②提供链接发起Servlet请求。
3)Controller(Servlet)
①接收用户的请求。
②交给业务层处理对应的代码。
③控制视图的跳转。
***以登录为例
登录——>接收用户的登录请求——>处理用户的请求(获取用户登录的参数)——>交给业务层处理登录业务(判断用户名密码是否正确:事务)——>Dao层查询用户名和密码是否正确–>数据库

Spring MVC执行过程

在这里插入图片描述

原理如下图
在这里插入图片描述
在这里插入图片描述
上面M和C是错的,M是指controller也就是MVC中的C返回的model,也就是modelandview,是MVC中的M
Controller 去访问service和Dao层,得到的数据封装到model中(数据模型、业务模型),然后再返回给View层
处理器映射器在就是通过注解把敲的路径和controller相匹配
前端控制器是核心,自动调度MVC,controller还会去访问Serive层和Dao层(数据访问层)
view和viewResolver在Spring Boot中是html文件加thymeleaf模板引擎
模板文件+model经过模板引擎生成动态的HTML

执行流程

1.客户端(浏览器)发送出请求到前端控制器 DispatcherServlet(类)
2.DispatcherServlet 收到请求调用 HandlerMapping(处理器映射器)
3.HandlerMapping 找到具体的处理器(通过 XML 或注解配置),生成处理器对象及处理器拦截器(若有),再一起返回给 DispatcherServlet
4.DispatcherServlet 调用 HandlerAdapter(处理器适配器)
5.HandlerAdapter经过适配调用具体的处理器的某个方法**(Handler/Controller)**
6.Controller 执行完成返回 ModelAndView 对象(Model 是返回的数据对象,View是个逻辑上的View)
7.HandlerAdapter 将 Controller 返回的 ModelAndView 再返回给 DispatcherServlet
8.DispatcherServlet 将** ModelAndView** 传给 ViewReslover(视图解析器)
9.ViewReslover 解析后返回具体 View(视图)
10.DispatcherServlet 根据 View 进行渲染视图(即将模型数据填充至视图中)
11.DispatcherServlet 响应请求者(浏览器)

经典三层和MVC模式

应用系统三层架构:

C/S架构:客户端/服务器架构

B/S架构:浏览器/服务器架构

Java开发的大多是web应用,是基于B/S架构开发的。JavaEE指定了一套规范,去进行BS结构的处理,这套规范就是Servlet。

B/S架构中,应用系统标准的三层架构为: 表现层、业务层、持久层。

表现层(Web层)
负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web,web层需要接收 http请求,完成http响应。
表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。
表现层的设计一般都使用 MVC 模型。 MVC 是表现层的设计模型,和其他层没有关系。(但是modole层包含service模型和dao模型)
业务层 (Service层)
它负责业务逻辑处理,和我们开发项目的需求息息相关。web层依赖业务层,但是业务层不依赖Web层。
业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。 (事务应该放到业务层来控制)
持久层 (dao 层)
负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口;业务层需要通过数据访问层将数据持久化到数据库中。
持久层就是和数据库交互,对数据库表进行增删改査的。
MVC 设计模式
MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种用于设计编写Web应用程序表现层的模式。

MVC设计模式的三大角色

Model (模型)
模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。

View (视图)
​ 通常指的就是我们的jsp或者html。作用一般就是展示数据的。
​ 通常视图是依据数据模型创建的。

Controller (控制器)
​ 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

Spring Boot启动流程
在这里插入图片描述

参考链接:
https://www.jianshu.com/p/6060d55784e1
https://www.jianshu.com/p/822ce3607dcc
https://www.cnblogs.com/kuotian/p/13143667.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值