springmvc框架

SpringMVC的孪生兄弟WebFlux

半腔热情 提交于 2020-01-04 05:18:18
一、入门文字介绍 官方口水话简短翻译:   Spring WebFlux是一个非阻塞的Web框架,用于利用多核,短时间可一处理大量并发连接。 非阻塞式   在servlet3.1提供了非阻塞的API,WebFlux为之有自己的一套手段,   使用非阻塞的方式可以利用 较小的线程或硬件资源 来 处理并发 函数式编程端点   Spring5必须配备java8,函数式编程就是java8重要的特点之一,   WebFlux支持函数式编程来定义路由端点处理请求。 二、入门小Demo Test   创建一个Spring Boot项目,版本要求2.0以上,需要下面的依赖,Spring Reactive Web 替代了Web依赖        看看我们的处理器:Controller     抽一个方法出来,待会儿会使用到,这个方法假如就是我们一个比较耗时的逻辑操作            然后看我们的处理器 @Slf4j @RestController              我们定义了两个处理器,一个就是普通的处理器,一个是使用了WebFlux的处理器,       然后我们观察我们的控制台日志情况:        ... 有没有发现什么一样,当然我们的页面都是一样的,需要在五秒后才会有结果,但是你观察控制台 发现下面那个打印的时间间隔很短有没有,并没有像上面那个一样等待五秒才打印

SpringMVC工作原理

六眼飞鱼酱① 提交于 2020-01-03 15:59:32
一:SpringMVC的工作原理图 二:SpringMVC流程 用户发送请求至前端控制器DispatcherServlet。 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 DispatcherServlet调用HandlerAdapter处理器适配器。 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 Controller执行完成返回ModelAndView。 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 ViewReslover解析后返回具体View。 DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 DispatcherServlet响应用户。 三:组件说明 以下组件通常使用框架提供实现: DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性

SpringMVC框架图解析

一笑奈何 提交于 2020-01-03 00:32:17
Spring框架提供了构造Web应用程序的全能MVC模块。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行制定。是一个标准的MVC框架。 那你猜一猜哪一部分应该是哪一部分? SpringMVC框架图 SpringMVC接口解释 DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。 HandlerMapping接口: 能够完成客户请求到Controller映射。 Controller接口: 需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器

自定义SpringMVC拦截器中HandlerMethod类型转换问题调研

半世苍凉 提交于 2020-01-01 23:39:58
摘要 在将a模块迁移到spring boot项目下、使用embeded tomcat启动项目后,在调用RESTfule接口时,模块中声明的一个SpringMVC拦截器"cn.xxx.thread.common.web.speedctrlforuser.SpeedctrlForUserInterceptor"中抛出了ClassCastException。但是使用外置Tomcat启动就没有这个问题。在逐行debug后发现是spring boot缺失一项配置导致了这个问题。 问题 在 TECHSTUDY-91 - THREAD模块接入服务注册/订阅服务 进行中 任务中,我为a模块定义了一个启动类(注解了@SpringBootApplication),并配置了对应的application.properties。由于目前只需要注册到eureka上,配置文件中只有如下两行配置: applictaion.properties spring.application.name=a eureka.client.serviceUrl.defaultZone= http://10.255.33.207:8080/eureka,http://10.255.33.208:8080/eureka,http://10.255.33.209:8080/eureka 在其它配置(如maven依赖关系

SpringMVC基础配置及使用

℡╲_俬逩灬. 提交于 2020-01-01 22:34:23
SpringMVC: 1.SpringMVC和Spring的关系: 软件开发的三层架构: web层【表示层、表现层】---->Service层---->Dao[DataBase Access Object]---->数据库! SpringMVC实际上是Spring的一个子模块,我们用SpringMVC来代替这个JavaWEB部分! MVC:也是一种设计模式:M:Model【模型】-->V[View]--->C[Controller]! Model用来封装数据的,View:用来显示数据 Controller:用于接收前端页面发送的请求,然后调用Service层处理,拿到处理结果,将该结果返回给前端页面! SpringMVC:相当于MVC架构中的C以及V! 2.SpringMVC有什么优势? Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一。 Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求(包含以下操作)。 GET POST PUT DELTE 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性. 目前主流的开发软件,说白了,大家都在用! 3

【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

跟風遠走 提交于 2020-01-01 12:18:20
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1、本文暂未使用maven集成,jar包需要手动导入。    2、本文为基础教程,大神切勿见笑。    3、如果对您学习有帮助,欢迎各种转载,注明出处。    4、本文涉及源码和jar包下载地址: 一、导包 需要准备的包:   1、spring包   2、springmvc 包   3、mybatis 包 请自行下载导入,也可以去本人分享的网盘下载。 在lib目录创建spring,mybatis分类管理,将包复制进入各自的文件夹,并加载包。 二、配置文件 创建名为: config 的Source Folder文件夹。新建xml文件, 命名为: springmvc.xml 2.1springmvc.xml 配置    2.1.1、加入需要的beans标签库(aop.tx.context.mvc) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop=

2019年springmvc面试高频题(java)

南笙酒味 提交于 2019-12-31 10:06:04
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来整合 ,它和Struts2一样都属于表现层的框架。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC的流程? 1、用户发送请求至前端控制器DispatcherServlet; 2、DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle; 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; 4

Hello-SpringMvc

梦想的初衷 提交于 2019-12-30 23:57:20
什么是SpringMVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。就是将业务逻辑、数据、显示分离的方法来组织代码 MVC主要作用是 降低了视图与业务逻辑间的双向偶合 。MVC不是一种设计模式, MVC是一种架构模式 。当然不同的MVC存在差异。 Model(模型) :数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。 View(视图) :负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Controller(控制器) :接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。 最典型的MVC就是 JSP + servlet + javabean 的模式。 Model1 在web早期的开发中,通常采用的都是Model1。 Model1中,主要分为两层,视图层和模型层。 Model1优点:架构简单,比较适合小型项目开发; Model1缺点:JSP职责不单一,职责过重,不便于维护 Model2

SpringBoot 系列教程(八十七):Spring Boot全局统一异常拦截处理

陌路散爱 提交于 2019-12-28 03:53:44
一、前言 在早几年项目开发过程中,对于异常处理太过于复杂和杂乱,项目代码中大量的 try catch 使用,通过 try catch 捕捉然后对异常处理,如果处理不了的则往上一层抛,由上一层接管异常的处理,其实不管是 SpringBoot 框架还是 Spring+SpringMVC+Mybatis 框架,都可以使用 @ControllerAdvice 和 @ExceptionHandler 对项目做一个全局的异常拦截处理,这样就可以将开发者从传统 try catch 方式中解脱出来。 二、SpringBoot中默认异常处理策略 在 SpringBoot 中,当出现 404 、 500 等异常时, SpringBoot 设计者对异常的处理有一些默认的策略,默认情况下默认的异常页面如下: 一、浏览器访问 一般情况下浏览器默认发送的请求头中Accept: text/html,所以Spring Boot默认会响应一个html文档内容,称作“Whitelabel Error Page”。 1. 404异常 2. 500异常 来源: CSDN 作者: Thinkingcao 链接: https://blog.csdn.net/Thinkingcao/article/details/103734977

SpringMVC学习(一)——对于springMVC的整体认识

二次信任 提交于 2019-12-27 18:49:38
一、首先什么是SpringMVC? SpringMVC是一个基于MVC实现的web框架,用于替代传统的servlet。MVC全名是Model View Controller,是模型(model)——视图(view)——控制器(controller)的缩写。 二、同类的技术有哪些? SpringMVC同类的技术要数Struts2 三、对比同类的优缺点是哪些? 对比Struts2的优势很明显: 1、拦截机制的不同,Struts2是类级别的拦截,SpringMVC是方法级别的拦截 2、底层架构的不同,Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC则是采用Servlet(DispatcherServlet)实现。 3、配置方面不同,SpringMVC和Spring是无缝结合的,相对于Struts2省却了很多配置,提高了开发效率符合当前敏捷开发思路。 四、SpringMVC的组成部分? 1、前端控制器(DispatcherServlet)——框架已提供不需要开发 中央处理器,负责请求的转发,相当于一个请求转发器 2、处理器映射器(HandlerMapping)——框架已提供不需要开发 接收到前端控制器发送来的url后,对url进行匹配,返回给前端控制器一个处理器执行链(HandlerExecuteChain) 3