Spring学习之旅(六)--SpringMVC集成】的更多相关文章

对大多数 Java 开发来说,基于 web 的应用程序是我们主要的关注点. Spring 也提供了对于 web 的支持,基于 MVC 模式的 Spring MVC 能够帮助我们灵活和松耦合的完成 web 应用程序. Spring MVC 处理流程 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler(可以根据xml配置.注解进行查找) 第三步:处理器映射器HandlerMapping向前端控制器返回Handle…
在之前的实例中我们只是在 Controller 中返回了 home 字符类型的值,而没有直接生成可以在浏览器中直接渲染的 HTML,这是因为 SpringMVC 将请求处理的逻辑和视图渲染的实现进行了解偶. Controller 返回视图名称,视图解析器进行视图的渲染. SpringMVC 定义了一个名为 ViewResolver 的接口,定义如下: public interface ViewResolver { View resolveViewName(String var1, Locale…
现在我们已经完成了一个无参的接口了,但是应用中有很多需要携带参数的场景,我们来看看 ** SpringMVC** 对它的支持. 参数绑定 SpringMVC 提供了一种绑定机制,通过这个机制可以从请求中提取数据,然后将数据转换为预定义的数据格式,最后映射到一个模型类,从而创建一个对象.该实现机制只需请求参数名称与 Java 类的属性相匹配即可. SpringMVC 允许以多种方式将客户端的数据传送到** Controller**方法中: 查询参数 表单参数 路径变量 查询参数和表单参数 1.新建…
文件上传 在 Web 应用中,允许用户上传文件是很常见的需求.文件上传通常是采用 multipart 格式,而 DispatcherServlet 并没有任何解析 multipart 请求数据的功能,它将这个解析的任务委托给了 Spring 中的 MultipartResolver 策略接口的实现,通过这个实现类来解析 multipart 请求中的内容. 从 Spring 3.1 开始, Spring 内置了两个 MultipartResolver 实现供我们选择: CommonsMultipa…
在之前的 Spring学习之旅(八)--SpringMVC请求参数 我们是通过在控制台输出来验证参数是否正确,但是这样做实在是太耗时间了,我们今天来学习下 MockMvc,它可以让我们不需要启动项目就能调用接口并验证接口返回结果是否符合我们的预期. 为何使用MockMvc? MockMvc 实现了对 Http 请求的模拟,能够直接使用网络的形式,实现 Controller 的调用,这样可以使得测试速度快.不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便. 如何使用…
由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较>,在此不再赘述. 基于AspectJ注解配置的AOP编程,就是将所有配置信息都放在源代码中以注解的方式标注.以与“基于XML配置”的AOP编程相区别. 1)Spring AOP注解就是依赖AspectJ来实现.因此使用Spring AOP注解,必须引入Aspectj框架及相应的包(aspec…
作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC-8]SpringMVC之类型转换Converter>(对应链接: http://www.cnblogs.com/ssslinppp/p/4598102.html ) 中讲解了Spring MVC的类型转换,在此回顾下. 数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入&q…
<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>系列文章,讲解返回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数据-…
一.整合原理 二.整合步骤 2.1 导包 [hibernate] hibernate/lib/required hibernate/lib/jpa 数据库驱动 [struts2] struts-blank.war/WEB-INF/lib/*(注意:javassist-3.18.1-GA.jar包与hibernate中的重复,删除版本低的) struts整合spring插件包 (注意:这个包一旦导入,那么struts2在启动时就会寻找spring容器,如果你导入了这个包,却没有配置spring容器…
前言 Swagger是用来描述和文档化RESTful API的一个项目.Swagger Spec是一套规范,定义了该如何去描述一个RESTful API.类似的项目还有RAML.API Blueprint. 根据Swagger Spec来描述RESTful API的文件称之为Swagger specification file,它使用JSON来表述,也支持作为JSON支持的YAML. Swagger specification file可以用来给swagger-ui生成一个Web的可交互的文档页…
AOP(Aspect-Oriented  Programming,面向切面编程)是Spring提供的关键技术之一. AOP基于IoC,是对OOP(Object-Oriented Programming,面向对象编程)的有效补充. 利用一种“横切”的技术,剖解封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为Aspect(切面,也称方面). AOP的核心思想就是“将应用程序中的业务逻辑与对其提供支持的通用服务功能进行分离,而业务逻辑与通用服务功能之间通过配置信息,实现…
1 概述 MyBaits是一个著名的持久层框架,本文首先介绍了MyBatis的简单使用,接着与Spring进行整合,最后简单地使用了Generator去自动生成代码. 2 MyBatis简介 MyBatis本来是Apache的一个开源项目--iBatis,2010年由Apaceh Software Foundation迁移到了Google Code,并改名为MyBatis. MyBatis是一个基于Java的持久层框架,提供的持久层框架包括SQL Maps和Data Access Objects…
为了梳理前面学习的内容<Spring整合MyBatis(Maven+MySQL)一>与<Spring整合MyBatis(Maven+MySQL)二>,做一个完整的示例完成一个简单的图书管理功能,主要使用到的技术包含Spring.MyBatis.Maven.MySQL及简单MVC等.最后的运行效果如下所示: 项目结构如下: 一.新建一个基于Maven的Web项目 1.1.创建一个简单的Maven项目,项目信息如下: 1.2.修改层面信息,在项目上右键选择属性,再选择“Project…
之前从博客.视频断断续续的学到了 Spring 的相关知识,但是都是一个个碎片化的知识.刚好最近在读 <Sprign实战(第四版)>,所以借此机会重新整理下Spring 系列的内容. Spring 是什么? Spring 是一个开源框架,它由 Rod Johnson 创建.它是为了解决企业应用开发的复杂性而创建的.Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情.然而,Spring 的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何 Ja…
SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查询用户信息.查询用户列表.新增用户等. 对于响应,主要就包含两部分内容: 响应页面 响应数据 文本数据 json数据 因为异步调用是目前常用的主流方式,所以我们需要更关注的就是如何返回JSON数据. 一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMV…
作者:ssslinppp       1. 摘要 在spring 中定义了3中类型转换接口,分别为: Converter接口              :使用最简单,最不灵活: ConverterFactory接口  :使用较复杂,比较灵活: GenericConverter接口 :使用最复杂,也最灵活: 可参考链接: http://blog.csdn.net/renhui999/article/details/9837897 .看看他们的介绍: 本文仅介绍Converter接口的使用. 这里仅…
作者:ssslinppp       1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串,并返回新的json字符串到前台: 前台接受后台传递过来的json数据,并显示. 2. 前台界面和js <%@ page language="java" pageEncoding="UTF-8"%> <% String path = request.ge…
在使用 Spring 的过程中,有时候会出现一些 ClassNotFoundException 异常,这是因为 JAR 依赖之间的版本不匹配所导致的.而 Spring Boot 就能避免绝大多数依赖版本问题,我们先来了解下 Spring Boot 的特性. SpringBoot 特性 Spring Boot Starter: 它将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的 Maven 或 Gradle 构建中; 自动配置:Spring Boot 的自动配置特性利…
除了关系型数据库之外,现在还有一种 NoSQL 数据库非常流行,而 Spring 自然也没有放过对它的支持. NoSQL 数据库有很多种,如: MongoDBGenericJackson2JsonRedisSerializer Redis Membase 我们这里就重点讲解 Redis . 注:这里前置认为各位对 Redis 已经有所了解并且安装好环境,如果对 Redis 还不了解的同学可以先移步到 Redis学习总结系列. 导入依赖 <!-- Redis --> <dependency…
对于本职工作来说 JDBC 就可以很好的完成,但是当我们对持久化的需求变得更复杂时,如: 延迟加载 预先抓取 级联 JDBC 就不能满足了,我们需要使用 ORM框架 来实现这些需求. Spring 对多个持久化框架都提供了支持,包括 Hibemate.IBATIS.JPA 等.和 Spring 对 JDBC 的支持一样, Spring 对 ORM框架 的支持除了提供与框架的继承点之外还包括一些附加服务: 支持集成 Spring 声明式事务; 透明的异常处理: 现场安全的.轻量级的模板类: DAO…
装配 Bean 的方式 在 XML 中进行显式配置 在 Java 中进行显式配置 隐式的 Bean 发现机制和自动装配 Spring 提供了以上三种方式进行 Bean 的配置,可以根据自己的需求选择一种或者混合使用.但是我的个人建议还是尽可能的使用自动配置机制,毕竟显式的配置越少越方便.但如果必须要显示的配置 bean 的时候,推荐使用比 XML 类型安全更好的 JavaConfig 方式. 自动化装配 Bean Spring 通过如下两个方式来实现自动化装配: 组件扫描(component s…
属性注入:创建对象的时候,向类里面的属性设置值. Java属性注入有三种方法: 使用set方法注入 有参数构造注入 使用接口注入 Spring框架里面的属性注入方式 有参数构造属性注入 set方法属性注入 有参数构造属性注入 编写User.java package com.example.spring; public class User { private String name; private Integer age; private String country; //基于构造函数的属性…
本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一个简单的实现四则运算的计算器. 加入AOP功能:日志功能:检测参数中是否有负数的功能. 废话不多说了,直接上代码: (一)基于XML配置: 定义了一个接口类: package com.edu.aop; public interface ArithmeticCalculator { int add(i…
编译工具:eclipse. 简单说一下,Spring  AOP是干嘛的? 假设你创建了一群类:类A,类B,类C,类D.... 现在你想为每个类都增加一个新功能,那么该怎么办呢?是不是想到了为每个类增加相同的新代码.这未免也Boring了吧.不过不用担心,Spring AOP就是来帮组你脱离这种单调乏味无聊愚蠢的工作的. 例子:创建类A,执行类A的方法.添加类A方法执行前后的时间显示. 1)新建Java工程项目 假设工程名为:spring_aop_hello 2)导入AOP所需jar包 注意,其中…
上篇博文对Spring的工作原理做了个大概的介绍,想看的同学请出门左转.今天详细说几点. (一)Spring IoC容器及其实例化与使用 Spring IoC容器负责Bean的实例化.配置和组装工作有两个接口:BeanFactory和ApplicationContext.其中ApplicationContext继承于BeanFactory,对企业级应用开发提供了更多的支持.在实际应用中都是用该接口. 1)实例化Spring容器(主要有四种) 1.ClassPathXmlApplicationCo…
详细的废话相信很多书籍视频资料都已经很多了,这里说几个小编个人认为对于理解Spring框架很重要的点.欢迎批评指正. 1)Spring的控制反转 先说说“依赖”,在面向对象程序设计中,类A中用到了类B的实例对象或者类B的方法,叫做类A依赖于类B. 在传统的代码实现中,这种依赖关系通过程序代码直接实现.而在Spring中,把这个工作交给了IoC容器,对象的依赖关系由容器来控制,程序只负责接口(Interface)的控制. 这种控制权从代码到外部容器的转移,称为“控制反转(IoC—Inversion…
编译工具:eclipse 1)创建Web工程:spring_web_helloworld 2)导入所需jar包: 3)创建实体类:同上篇博文 4)创建配置文件hellobean.xml.同上篇博文 不过,注意,本项目中配置文件放的位置为WebContent目录下. 5)实例化Spring容器:在web.xml中配置Spring容器.在启动Web工程时,自动创建实例化Spring容器.同时,在web.xml中指定Spring的配置文件.在启动Web工程时,自动关联到Spring容器中,并对Bean…
编译工具:eclipse 1)创建java工程:Spring_helloworld 2)导入所需jar包: 3)创建一个实体类: public class HelloBeans { private String name; private String course; private Double score; public HelloBeans(){} public HelloBeans(String name,String course,Double score){ this.name=na…
数据库的读写并发一直都是应用性能的瓶颈所在之一,针对改动频率很小的数据我们应该将他存放到缓存中,减少与数据库的交互. 启用对缓存的支持 Spring 对缓存的支持有两种方式: 注解驱动的缓存 XML 申明的缓存 为了避免繁琐的 XML 配置文件,我们这边只讲解注解驱动的形式. 启用缓存功能 @Configuration // 启用缓存功能 @EnableCaching public class CachingConfig { /** * 申明缓存管理器 * @return */ @Bean pu…