1、什么是 spring?
Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,
但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java
企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。
2、使用 Spring 框架的好处是什么?
- 轻量:Spring 是轻量的,基本的版本大约 2MB。
- 控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
- 面向切面的编程(AOP):Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
4.容器:Spring 包含并管理应用中对象的生命周期和配置。
5.MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。
- 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
7.异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO 抛出的)转化为一致的 unchecked 异常。
1,关于spring容器:
spring容器是Spring的核心,该容器负责管理spring中的java组件,
2,AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
3,Spring的核心机制:依赖注入。
不管是依赖注入(Dependency Injection)还是控制反转(Inversion of Conctrol),其含义完全相同:
当某个java实例(调用者)需要调用另一个java实例(被调用者)时,传统情况下,通过调用者来创建被调用者的实例,通常通过new来创建,
而在依赖注入的模式下创建被调用者的工作不再由调用者来完成,因此称之为“控制反转”;创建被调用者实例的工作通常由Spring来完成,然后注入调用者,所以也称之为“依赖注入”。
4,依赖注入一般有2中方式:
设置注入:IoC容器使用属性的setter方式注入被依赖的实例。
构造注入:IoC容器使用构造器来注入被依赖的实例。
1.MVC概述
MVC(Model–view–controller)是软件工程中的一种软件架构模式,基于此模式把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。目的是通过这样的设计使程序结构更加简洁、直观,降低问题的复杂度。其中各个组成部分的职责为:
- 视图(View) - UI设计人员进行图形界面设计,负责实现与用户交互。
- 控制器(Controller)- 负责获取请求,处理请求,响应结果。
- 模型(Model) - 实现业务逻辑,数据逻辑实现。
我们在软件设计时,通常要遵循一定的设计原则。MVC架构模式的设计中,首先基于单一职责原则(SRP-Single responsibility principle)让每个对象各司其职,各尽所能。然后再基于“高内聚,低耦合”的设计思想实现相关层对象之间的交互。这样可以更好提高程序的可维护性和可扩展性。
Spring MVC 是Spring 框架中基于MVC设计思想实现的一个用于处理Web请求的模块。其简易架构分析,如图所示:
- DispatcherServlet :前端控制器, 处理请求的入口。
- HandlerMapping:映射器对象, 用于管理url与对应controller的映射关系。
- Interceptors:拦截器,实现请求响应的共性处理。
- Controller:后端控制器-handler, 负责处理请求的控制逻辑。
- ViewResolver:视图解析器,解析对应的视图关系(前缀+viewname+后缀)。
2.SpringMVC的工作原理
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。
什么是SpringBooot?
Spring boot是一个脚手架,构建于Spring框架(Framework)基础之上,基于快速构建理念,提供了自动配置功能,可实现其开箱即用特性(创建完一个基本的项目以后,可零配置或者少量配置即可运行我们的项目),其核心主要有如下几个方面:
- 起步依赖(Starter Dependency)-项目创建时底层帮你关联依赖。
- 自动配置(Auto Configuration)。
- 健康检查(Actator)-监控。