(问较多:1.SpringBoot对比SpringMVC.2.SpringMVC 处理请求过程.问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能.Spring MVC是基于 Servlet…
之前有一次在面试其中被问到了这个问题.当时说得不是非常清楚,有些细节的地方想不起来了.所以在这里从新回想和总结一下SpringMVC的起步.请求的运行过程. 在SpringMVC其中.跟请求(Request)有关系的有下面几个部分 DispatcherServlet HandlerMapping Controller ViewResolver View 事实上我要做的就是用几个剪头把上边列表中的五个部分连起来,这样就能够清晰的看出来请求是如何走的了. 首先请求从浏览器发送出来到了server,我…
由于spring的dispatchservlet会通过当前的handlermapping来将当前地址栏的请求映射为实际的项目目录结构,所以使用普通的request.getRequestURL()是无法获得地址栏的请求路径的: 这时有两个方法可以获得当前的“实际”请求路径: 1:request.getAttribute("javax.servlet.forward.request_uri") 2:(String) request.getAttribute(HandlerMapping.P…
创建应用对象之间协作关系的行为通常成为装配,该篇的主要内容有两个,一个Spring装配Bean的几种方式以及Spring表达式,事实上这两者是分不开的,在Spring中,对象无需自己负责查找或者创建与其关联的其它对象,相反容器负责把须要相互协作的对象一引用赋予各个对象,眼下我们先说声明式的装配,注解式的装配等溜到下篇再具体记录,在声明用的xml配置文件里,能够使用表达式来完毕一些简单的逻辑处理,和方法调用或者对象引用,在有些特殊的需求其中非它莫属,首先是装配Bean 声明Bean <bean i…
代理 代理(Proxy)是一种设计模式,可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象是对目标对象的扩展,并会调用目标对象. 三种代理模式 静态代理 100% 代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法. 优点:不用修改原对象. 缺点:一旦接口增加方法,目标对象和代理对象都要维护. 动态代理(也叫JDK代理,接口代理) 30% 动态代理中,代理对象不需要实现接口,代理对象的生成是利用JDK的API,动态地在内存中构建代理对象. 使用java.lan…
晚上看了这本书的前面几章,记录一下自己看到的要点. 全书分为四大部分,Spring核心,web,后台相关,与其它框架集成.今天主要看了第一部分. Spring最根本的使命是简化Java开发,全方位的简化开发,降低开发复杂性,为此主要采用了4种关键策略, 基于pojo的轻量级和最小侵入式编程. 通过依赖注入和面向接口实现松耦合. 基于切面和惯例进行声明式编程. 通过切面和模板减少样板式代码. 其中最核心的技术就是依赖注入和AOP.依赖注入通过容器解决对象的实例初始化以及对象间依赖关系的管理. 关依…
一.什么是 MVC MVC 实际上就是一种设计模式 Model-View-Controller Model 模型其实就是数据,Dao,Bean 等等 View 视图就是所看到的东西,网页,JSP,展示模型中的数据,包括数据逻辑的处理和数据操作(数据库中存取数据) Controller 控制器就是将不同的数据(Model)显示在不同的视图(View)上 1. Model1 时代 它是在 JSP + Bean (Model + View) 基础上升级演变过来的,称之为 Model1,相对于 MVC…
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析.本文是第二篇:DispatcherServlet处理请求的过程的源码解析.@pdai Spring框架系列(14) - SpringMVC实现原理之DispatcherServlet处理请求的过程 DispatcherServlet处理请求的过程? 回顾整理处理流程 doG…
之前一直在看<Spring实战>第三版,看到第五章时发现很多东西已经过时被废弃了,于是现在开始读<Spring实战>第四版了,章节安排与之前不同了,里面应用的应该是最新的技术. 本章中,将会接触到Spring MVC基础,以及如何编写控制器来处理web请求,如何通明地绑定请求参数到业务对象上,同时还可以提供数据校验和错误处理的功能. Spring MVC初探 跟踪Spring MVC请求 请求会由DispatcherServlet分配给控制器(根据处理器映射来确定),在控制器完成处…
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-…
Spring实战第八章学习笔记----使用Spring Web Flow Spring Web Flow是一个Web框架,它适用于元素按规定流程运行的程序. 其实我们可以使用任何WEB框架写流程化的应用程序,但是这样就没有办法将流程和实现分开了,你会发现流程的定义分散在组成流程的各个元素中,没有地方能够完整地描述整个流程.Spring Web Flow是Spring MVC的扩展,它支持开发基于流程的应用程序.它将流程的定义与实现流程行为的类和视图分离开来. 在Spring中配置Web Flow…
Spring实战第六章学习笔记----渲染Web视图 理解视图解析 在之前所编写的控制器方法都没有直接产生浏览器所需的HTML.这些方法只是将一些数据传入到模型中然后再将模型传递给一个用来渲染的视图.尽管我们编写了几个JSP视图但控制器不关心这些. 将控制器请求处理的逻辑和视图中的渲染实现解耦是SpringMVC的一个重要特性.而控制器只通过逻辑视图名来了解视图,这时就需要Spring视图解析器了. SpringMVC定义了一个名为ViewResolver的接口,大致如下所示: public i…
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那样灵活和松耦合的Web应用程序. Spring MVC起步 跟踪Spring MVC的请求…
Spring实战读书笔记 Spring-core Spring之旅 - DI 和 AOP 概念 spring 的Bean容器 spring 的 核心模块 Spring的核心策略 POJO 最小侵入式编程 Spring不会强迫你实现接口或者继承类,通过DI来装配POJO类型. 采用依赖注入和面向接口实现松耦合 依赖反转容器(IOC):将整体设计和局部实现之间的依赖关系反转,比如汽车厂设计汽车:如果先设计轮子,再根据轮子设计底盘,再根据底盘设计汽车,在我们更换轮子的时候就会由于轮子和底盘之间依赖关系…
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service层,Model层,建立Controller对数据库操作的通道. 这里没有使用maven来管理jar包(依赖库),因为没太多,实际上还是很繁琐的,要有耐心. 原本稍微复杂的工程项目还是应该使用maven来管理依赖库,参见:http://tieba.baidu.com/p/2364606122?pn=1…
spring mvc处理请求过程 1.    首先客户端发送一个HTTP请求,Web服务器接收这个请求,如果匹配DispatcherServlet的请求映射路径,web容器将请求转交给DispatcherServlet处理. 2.    DispatcherServlet接收到请求,根据请求信息(包括URL,HTTP方法,请求报文,请求参数,cookie等)及HandlerMapping的配置找到对应的请求处理器(Handler),在spring MVC中并没有定义一个Handler接口,任何一…
作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC-8]SpringMVC之类型转换Converter>(对应链接: http://www.cnblogs.com/ssslinppp/p/4598102.html ) 中讲解了Spring MVC的类型转换,在此回顾下. 数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入&q…
作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MVC与json参考文章:[spring学习笔记-mvc-3]返回json数据-方式1  和 [spring学习笔记-mvc-4]返回json数据-方式2. 使用到的技术主要如下: Ajax:使用JQuery 提供的ajax:==>需要引入jquery.min.js文件: Spring MVC: Jso…
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-…
Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我们模块化横切关注点.而当我们要重用通用功能时,最常见的面向编程技术是继承或委托.但当整个应用都用相同的基类继承会导致整个对象体系脆弱,而委托会使调用变复杂.切面则提供了取代继承和委托的另一种方案.在使用面向切面编程时,我们仍然在一个地方定义通用功能,但是可以通过声明的方式定义这个功能要以何种方式在何…
http://blog.csdn.net/21aspnet/article/details/51386557 1.IOC装配Bean 参考[spring实战4 2.2],作者提倡无XML配置化. 1.1接口只有一个现实类 可以自动装配 package demo; public interface CompactDisc { void play(); } 实现类 package demo; import org.springframework.stereotype.Component; @Comp…
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析.本文是第一篇:DispatcherServlet的初始化过程的源码解析.@pdai Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程 DispatcherServlet和ApplicationContext有何关系…
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-…
本文主要梳理下Spring MVC处理http请求的过程,以及配置servlet及业务application需要的常用标签,及其包含的意义. spring MVC处理请求过程 首先看一个整体图 简单说下各步骤: handlerMapping handlerMapping将请求映射到处理器,即图中的HandlerExecutionChain.依据是请求中的信息:请求URL(value),请求参数(params),请求方法(method),请求头(headers).处理器方法从中获取参数,相关的标注…
spring MVC处理请求过程 首先看一个整体图 简单说下各步骤: handlerMapping handlerMapping将请求映射到处理器,即图中的HandlerExecutionChain.依据是请求中的信息:请求URL(value),请求参数(params),请求方法(method),请求头(headers).处理器方法从中获取参数,相关的标注有PathVariable.RequestParam.RequestHeader.CookieValue等. 请求方法包括GET.POST.D…
Spring Http Invoke 请求过程图:…
首先用户发送请求,DispatcherServlet实现了Servlet接口 获取url请求对应的处理方法,遍历handlerMappings列表,获取对象HandlerExecutionChain(包含一个处理器 handler 如HandlerMethod 对象.多个 HandlerInterceptor 拦截器对象),遍历handlerMappings列表,针对每个handlerMapping试图获取HandlerExecutionChain,一旦成功,即返回 获取对应的 HandlerA…
第1章 深入Web请求过程 1 1.1 B/S网络架构概述 2 基于统一的应用层协议HTTP来交互数据. 1.2 如何发起一个请求 4 HTTP连接本质是建立Socket连接.请求实现方式:工具包如HttpClient.curl+URL.浏览器输入URL回车. 1.3 HTTP协议解析 6 Headers查看步骤:F12->Network->F5->URL->Headers. 1.3.1 查看HTTP信息的工具 8 Firefox--Firebug.F12 1.3.2 浏览器缓存机…
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统的dao.service.controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图: 1.2 自定义…
Spring实战第二章学习笔记----装配Bean 创建应用对象之间协作关系的行为通常称为装配(wiring).这也是依赖注入(DI)的本质. Spring配置的可选方案 当描述bean如何被装配时,Spring具有非常大的灵活性,它提供了三种主要的装配机制: 在XML中进行显示装配. 在Java中进行显示装配. 隐式的bean发现机制和自动装配. 在这本书中作者建议尽可能使用自动配置的机制.显示配置越少越好.而当你必须要显示配置bean时(比如有些代码不是你维护的,而你需要为这些代码装配bea…