1.创建一个类来实现AnnotationFormatterFactory接口 代码: package com.oukele.CustomAnnotation; import com.oukele.model.CardId; import org.springframework.format.AnnotationFormatterFactory; import org.springframework.format.Parser; import org.springframework.format.…
每篇一句 在绝对力量面前,一切技巧都是浮云 前言 上文 介绍了Http内容协商的一些概念,以及Spring MVC内置的4种协商方式使用介绍.本文主要针对Spring MVC内容协商方式:从步骤.原理层面理解,最后达到通过自己来扩展协商方式效果. 首先肯定需要介绍的,那必然就是Spring MVC的默认支持的四大协商策略的原理分析喽: ContentNegotiationStrategy 该接口就是Spring MVC实现内容协商的策略接口: // A strategy for resolvin…
前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉得自己动手写一遍印象要深刻许多,希望想深入学习MVC的童鞋自己动手写写.好了,废话就此打住. 本文原创地址:http://www.cnblogs.com/landeanfen/p/6016394.html MVC源码学习系列文章目录: MVC系列——MVC源码学习:打造自己的MVC框架(一) MVC…
本文转自http://blog.csdn.net/lufeng20/article/details/7598801 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用…
Spring MVC(Model-View-Controller) 当你看到本博文时,我猜你可能正面临着我已探索过的问题. 同其他博主一样,我先按照书上详细的介绍一下 Spring MVC,也是为了自己能理解的更深刻一些. 一.跟踪 Spring MVC 的请求 每当我们碰到各种问题时,我们总是会向浏览器求助. 正如你在百度里查找资料一样,搜索一下问题,点击一个链接,再查看里面的内容. 1.在请求离开浏览器时,总会带有你发出请求的信息,比如你可能刚刚在搜 Spring MVC,这就是信息. 2.…
java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务处理后给前端返回ModelAndView对象或者只返回Json格式数据.如果能够获得Http请求在后端程序中处理的相关信息,对于开发和调试时十分方便的.工程中使用了Spring MVC的Interceptor对所有Http请求及其响应进行拦截,从而获取到本次访问接口信息以及程序处理时长等信息,特意在…
简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单.这一次我将从零开始搭建一个工程来演示如何在Spring mvc中整合Swagger生成Restful接口文档. 新建工程 我们新建一个Maven工程,并添加Web Facet,工程结构如下图所…
好几天没有跟进Spring MVC的学习了,之前看了点源码都忘的差不多了.这次就跟着之前的问题,继续总结下Spring MVC中的小知识. 关于SpringMVC的小demo可以参考这里! url-pattern 如果看过前一篇入门的帖子,应该了解到spring mvc在启动前必须要在web.xml中配置servlet,这样才能拦截到想要映射的url地址. <servlet> <servlet-name>SpringMVC</servlet-name> <serv…
1.创建web项目 2.在springmvc的配置文件中指定注解驱动,配置扫描器 在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC 框架扫描到,需要在配置文件中声明 spring-context,并使用 <context:component-scan/> 元素指定控制器类的基本包(请确保所有控制器类都在基本包及其子包下). <!-- 使用扫描机制扫描控制器类,控制器类都在controller包及其子包下 -->…
spring mvc 是类似于 Struts 的框架.他们都有一个最主要的功能就是URL路由.URL路由能将请求与响应请求处理逻辑的类(在Struts中即是action,在spring mvc 中即是 controller )映射起来.抛开其他的功能,spring mvc 要比 Struts 在URL路由功能上灵活很多.比如要实现 RESTful,如果用 Struts ,需要安装 一些插件,而且插件也常常限制的很死.但是如果用 spring mvc ,那就驾轻就熟. 下面具体看一下spring…
在Restful风格的web开发中,根据不同的请求方法使用相应的控制器处理逻辑成为核心需求,下面就看看如何在Spring MVC中识别不同的请求方法. 请求方法 在Http中,请求的方法有很多种,最常见的就是GET.POST,他们的差异就不过多赘述了.由于Restful概念的兴起,即使用Url的不同请求方法来控制业务方法,很多请求方法都开始流行起来,比如PUT.DELETE等等. 那么就先介绍下各个请求方法的使用场景吧! GET 平时网页的一些基本的URL都是GET请求的,用于执行查询操作. 但…
概述 前文记录了MVC模式和Spring MVC的初步认识,现在记录创建一个项目,配置Spring MVC,编写接口程序. 创建项目 打开IntelliJ IDEA,点击"File->New->Project...",在打开的界面中左侧选择"Maven",勾选"Create from archetype",选中"maven-archetype-webapp",点击"Next": 填写GroupI…
前言 前面学习了简单的Spring Web知识,接着学习更高阶的Web技术. 高级技术 Spring MVC配置的替换方案 自定义DispatcherServlet配置 在第五章我们曾编写过如下代码. public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasse…
spring boot 入门 关于版本的选择,spring boot 2.0开始依赖于 Spring Framework 5.1.0,而spring 5.x和之前的版本差距比较大,而且应该来说还没有广泛的使用,所以生产中,一般来说目前还是建议使用spring boot 1.x,目前最新版本是1.5.9,官方手册https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/pdf/spring-boot-reference.pdf.…
每篇一句 十个光头九个富,最后一个会砍树 前言 不知你在使用Spring Boot时是否对这样一个现象"诧异"过:同一个接口(同一个URL)在接口报错情况下,若你用rest访问,它返回给你的是一个json串:但若你用浏览器访问,它返回给你的是一段html.恰如下面例子(Spring Boot环境~): @RestController @RequestMapping public class HelloController { @GetMapping("/test/error&…
每篇一句 人生很有意思:首先就得活得长.活得长才能够见自己,再长就可以见众生 前言 在经过 前两篇 文章了解了Spring MVC的内容协商机制之后,相信你已经能够熟练的运用Spring MVC提供的这项能力,配合RESTful发挥它的功效了.这其实也就达到了我们目的的80%,也达到了我书写这块知识点的目的. 为何说是80%呢?因为我认为在前后端完全分离的今天,绝大部分使用场景都是这种情况,完成了覆盖. 为何还有20%呢?因为内容协商不仅仅可以使用在HttpMessage上,还可以使用在View…
Spring MVC是Spring框架中用于Web应用开发的一个模块.Spring MVC的MVC是Model-View-Controller的缩写.它是一个广泛应用于图像化用户交互开发中的设计模式,不仅常见于Web开发,也广泛应用于如Swing和JavaFX等桌面开发. Spring MVC基于Spring框架.Servlet和JSP(JavaServer Page),在掌握这3门技术的基础上学习Spring MVC将非常容易. Spring框架是一个开源的企业应用开发框架,作为一个轻量级的解…
当初选框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢 不用不知道一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外) 比较了一下strus2与spring3 mvc的差别 ============================================ struts2…
测试在软件开发中的重要性不言而喻.测试的主要目的是尽早发现错误,最好是在代码开发的同时.逻辑上认为,错误发现的越早,修复的成本越低.如果在编程中发现错误,可以立即更改代码:如果软件发布后,客户发现错误所需要的修复成本会很大. 在软件开发中有许多不同的测试,其中两个是单元测试和集成测试.通常从单元测试开始测试类中的单个方法,然后进行集成测试,以测试不同的模块是否可以无缝协同工作. 本篇博客中的示例使用JUnit测试框架以及Spring test模块.Spring test模块中的API可用于单元测…
纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核心 JavaBean 应用上下文 IoC/DI spring框架组成 spring还可以做什么 什么是Spring Spring框架是Java平台的开源的全栈应用程序框架和控制反转容器实现. 传统的Java Web应用架构 传统的Java web框架一般分为两层:Contrller-Model. 控…
Spring Web MVC框架(通常简称为"Spring MVC")是一个富"模型,视图,控制器"的web框架. Spring MVC允许你创建特定的@Controller或@RestController beans来处理传入的HTTP请求. 使用@RequestMapping注解可以将控制器中的方法映射到相应的HTTP请求. 示例: @RestController @RequestMapping(value="/users") public…
网上Spring MVC相关知识点的介绍已经有很多了,但是大部分文章都是介绍其中的一部分知识点. 本文希望能够向读者做一个基本整体的介绍,首先我们先来了解下Spring MVC的基础接口和组件.   一.DispatcherServlet VS ContextLoaderListener 首先我们需要区分DispatcherServlet和ContextLoaderListener,在web应用程序中有两种类型的容器. 一个容器负责初始化应用程序上下文,另一个容器负责初始化web应用的上下文.…
1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/n…
1.Spring mvc 基于model2实现,整体框架流程如(图片来自百度): ①web容器接收到http请求,若匹配DispatcherServlet的请求映射路径(web.xml),则容器会交给DispatcherServlet处理. ②DispatcherServlet根据请求的信息及handlerMapping(类似路由功能)的配置找到处理请求的Handler. ③Handler adapter对handler进行封装,使用统一的方法对Handler方法进行调用 ④处理器完成业务逻辑后…
1.环境参数: Maven:3.1.1 JDK  :1.6 2.项目文件结构图: 3.各文件配置: 3.1. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:…
org.springframework.web.servlet.mvc.support.RedirectAttributes org.springframework.web.servlet.mvc.support.RedirectAttributes to specify the exact set of attributes to use in case of a redirect and also to add flash attributes (attributes stored temp…
1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自动创建Java EE规范定义的Java Web应用程序的有效目录结构,如:WEB-INF/classes目录等,方便省心.当然Maven还有其他优秀的功能,这里不会详细介绍.pom.xml的内容可见第6小节. 接下来将介绍如果使用Spring MVC开发简单的Web应用程序,就从创建配置文件开始.…
1. 前言 上一篇对 Spring MVC 的函数式接口编程进行了简单入门,让很多不知道的同学见识了这种新操作.也有反应这种看起来没有传统写法顺眼,其实大家都一样.但是我们还是要敢于尝试新事物.Java Lambada 刚出来也是被人各种吐槽,现在我在很多项目都见到了它的身影.好了转回正题,本文是对上一篇的延伸,我们继续对 Functional Endpoint 进行一些了解和运用.范式转换其实上一篇已经介绍差不多了,但是一旦你初次接触这种方式往往会面临新的问题. 2. 新的问题 在使用这种风格…
Spring mvc源码分析系列--前言 前言 距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡.Spring mvc这一套里面部分内容稍显落后了,例如视图部分可以说是耦合前端的逻辑,现在的后端也很少再会去写jsp之类的东西.所以在现在看来,似乎是有一点落后于时代了.现在再去分析Spring mvc的实现,是不是有点吃力不讨好. 项目开发中SpringBoot的广泛使用.SpringBoot提…
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;…