框架学习随笔1-Spring简介、Spring MVC简介
Spring简介
Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用。Spring是模块化的,所以可以只使用其中需要的部分。可以在任何web框架上使用控制反转(IoC),也可以只使用Hibernate集成代码或JDBC抽象层。它支持声明式事务管理、通过RMI或web服务实现远程访问,并可以使用多种方式持久化数据。它提供了功能全面的MVC框架,可以透明地集成AOP到软件中。
Spring被设计为非侵入式的,这意味着你的域逻辑代码通常不会依赖于框架本身。在集成层(比如数据访问层),会存在一些依赖同时依赖于数据访问技术和Spring,但是这些依赖可以很容易地从代码库中分离出来。
Spring框架是轻量级框架 。
什么是轻量级框架?轻量级框架是相对于重量级框架的一种设计模式:轻量级框架不带有侵略性API,对容器也没有依赖性,易于进行配置,易于通用,启动时间较短。这是轻量级框架相对于重量级框架的优势。(摘自百度百科)
什么是容器?Java中容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。(摘自百度百科)
Spring是模块化的,例如控制反转(IoC)、Hibernate集成、JDBC抽象层等。
控制反转(IoC)是什么?控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。(摘自百度百科)
Hibernate集成代码是什么?Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。(摘自百度百科)
JDBC是什么?是Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。(摘自百度百科)
Spring大约包含了20个模块,这些模块组成了核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web、AOP(面向切面编程,Aspect Oriented Programming)、Instrumentation、消息处理(Messaging)和测试(Test),如下图:
Spring支持声明式事务管理、通过RMI或web服务实现远程访问,并可以使用多种方式持久化数据。
Spring提供了功能全面的MVC框架,可以透明地集成AOP到软件中。
什么是AOP?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。(摘自百度百科)
什么是MVC?后面会谈到。
Spring框架是基于Java平台的,它为开发Java应用提供了全方位的基础设施支持,并且它很好地处理了这些基础设施,所以你只需要关注你的应用本身即可。
Spring可以使用POJO(普通的Java对象,plain old Java objects)创建应用,并且可以将企业服务非侵入式地应用到POJO。这项功能适用于Java SE编程模型以及全部或部分的Java EE。
那么,做为开发者可以从Spring获得哪些好处呢?
- 不用关心事务API就可以执行数据库事务;
- 不用关心远程API就可以使用远程操作;
- 不用关心JMX API就可以进行管理操作;
- 不用关心JMS API就可以进行消息处理。
Spring可以使用POJO创建应用。
什么是POJO?POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans。(摘自百度百科)
什么是JMX?JMX,Java Management eXtension,Java管理扩展,是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。(摘自百度百科)
什么是JMS?JMS,Java Message Service,Java消息服务,是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。(摘自百度百科)
Spring MVC简介
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就已包含在Spring Framework中。正式名称“ Spring Web MVC”来自其源模块(spring-webmvc)的名称,但它通常被称为“ Spring MVC”。
与其他许多Web框架一样,Spring MVC围绕前端控制器模式进行设计Servlet,其中DispatcherServlet提供了用于请求处理的共享算法,而实际工作是由可配置的委托组件执行的。该模型非常灵活,并支持多种工作流程。
DispatcherServlet,作为任何Servlet,都需要根据通过使用Java配置或在Servlet说明书中声明和映射web.xml。反过来,DispatcherServlet使用Spring配置文件来发现它需要请求映射,视图解析,异常处理,委托组件等等。
什么是DispatcherServlet?DispatcherServlet是前置控制器,配置在web.xml文件中的。Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成。(摘自百度百科)
DispatcherServlet依赖WebApplicationContext,而WebApplicationContext关联了ServletContext以及附带的Servlet。并且WebApplicationContext将自己绑定在了ServletContext中。
MVC作为WEB项目开发的核心环节,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)分开构成了MVC。
- 模型M:存储数据以及处理用户请求的业务逻辑。
- 视图V:向控制器C提交数据,显示模型M中的数据。
- 控制器C:根据视图V提出的请求判断将请求和数据交给哪个模型M处理,将处理后的有关结果交给哪个视图V更新显示。
Spring MVC 的工作流程如下:
- 客户端请求提交到DispatcherServlet。
- 由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller。
- DispatcherServlet将请求提交到Controller。
- Controller调用业务逻辑处理后返回ModelAndView。
- DispatcherServlet寻找一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图。
- 视图负责将结果显示到客户端。
Spring系列官方地址:https://spring.io/
今日只写了简介概述,稍稍点。