- 浏览: 3430750 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
Spring REST是什么? http://blog.csdn.net/pilou5400/article/details/6096861
Spring3.0实现REST实例 http://blog.csdn.net/leecho571/article/details/6559758
spring 3.0 应用springmvc 构造RESTful URL 详细讲解 http://badqiu.iteye.com/blog/473301,文章里面的UrlRewriteFilter功能,springMVC自己已经实现,就是 <mvc:resources location="/image/" mapping="/image/**"/>同能同等。
springmvc定制REST风格 以及 与JSR303 Bean校验整合 http://www.cnblogs.com/dennisit/archive/2013/04/13/3019391.html
用 UrlRewriteFilter 实现 URL 重写 http://panyongzheng.iteye.com/blog/1901290
Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> http://perfy315.iteye.com/blog/2008763
拦截器:
SpringMVC中使用Interceptor拦截器 http://panyongzheng.iteye.com/blog/2084629
基于注解风格的Spring-MVC的拦截器 http://blog.csdn.net/li_xiao_ming/article/details/9704337
springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的
@RequestMapping 用法详解之地址映射 http://blog.sina.com.cn/s/blog_72827fb10101pl9i.html
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 http://panyongzheng.iteye.com/blog/1797446
传统的Web应用大都是B/S架构,它包括了如下一些规范:
1. 客户-服务器
这种规范的提出,改善了用户接口跨多个平台的可移植性,并且通过简化服务器组件,改善了系统的可伸缩性。最为关键的是通过分离用户接口和数据存储这两个关注点,使得不同用户终端享受相同数据成为了可能。
2. 无状态性
无状态性是在客户-服务器约束的基础上添加的又一层规范。他要求通信必须在本质上是无状态的,即从客户到服务器的每个request都必须包含理解该 request所必须的所有信息。这个规范改善了系统的可见性(无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前 request,而不必了解所有的request历史),可靠性(无状态性减少了服务器从局部错误中恢复的任务量),可伸缩性(无状态性使得服务器端可以很容易的释放资源,因为服务器端不必在多个request中保存状态)。同时,这种规范的缺点也是显而易见得,由于不能将状态数据保存在服务器上的共享上下文中,因此增加了在一系列request中发送重复数据的开销,严重的降低了效率。
3.缓存
为了改善无状态性带来的网络的低效性,我们填加了缓存约束。缓存约束允许隐式或显式地标记一个response中的数据,这样就赋予了客户端缓存 response数据的功能,这样就可以为以后的request共用缓存的数据,部分或全部的消除一部分交互,增加了网络的效率。但是用于客户端缓存了信息,也就同时增加了客户端与服务器数据不一致的可能,从而降低了可靠性。
B/S架构的优点是其部署非常方便,但在用户体验方面却不是很理想。为了改善这种情况,
我们引入了REST。
REST在原有的架构上增加了三个新规范:统一接口,分层系统和按需代码。
1.统一接口
REST 架构风格的核心特征就是强调组件之间有一个统一的接口,这表现在REST世界里,网络上所有的事物都被抽象为资源,而REST就是通过通用的链接器接口对资源进行操作。这样设计的好处是保证系统提供的服务都是解耦的,极大的简化了系统,从而改善了系统的交互性和可重用性。并且REST针对Web的常见情况做了优化,使得REST接口被设计为可以高效的转移大粒度的超媒体数据,这也就导致了REST接口对其它的架构并不是最优的。
2.分层系统
分层系统规则的加入提高了各种层次之间的独立性,为整个系统的复杂性设置了边界,通过封装遗留的服务,使新的服务器免受遗留客户端的影响,这也就提高了系统的可伸缩性。
3.按需代码
REST允许对客户端功能进行扩展。比如,通过下载并执行applet或脚本形式的代码,来扩展客户端功能。但这在改善系统可扩展性的同时,也降低了可见性。所以它只是REST的一个可选的约束。
REST的设计准则
REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则:
1. 网络上的所有事物都被抽象为资源(resource);
2. 每个资源对应一个唯一的资源标识符(resource identifier);
3.通过通用的连接器接口(generic connector interface)对资源进行操作;
4. 对资源的各种操作不会改变资源标识符;
5. 所有的操作都是无状态的(stateless)。
REST中的资源所指的不是数据,而是数据和表现形式的组合,比如“最新访问的10位会员”和“最活跃的10为会员”在数据上可能有重叠或者完全相同,而由于他们的表现形式不同,所以被归为不同的资源,这也就是为什么REST的全名是Representational State Transfer的原因。资源标识符就是URI(Uniform Resource Identifier),不管是图片,Word还是视频文件,甚至只是一种虚拟的服务,也不管你是xml格式,txt文件格式还是其它文件格式,全部通过 URI对资源进行唯一的标识。
REST是基于Http协议的,任何对资源的操作行为都是通过Http协议来实现。以往的Web开发大多数用的都是Http协议中的GET和 POST方法,对其他方法很少使用,这实际上是因为对Http协议认识片面的理解造成的。Http不仅仅是一个简单的运载数据的协议,而是一个具有丰富内涵的网络软件的协议。他不仅仅能对互联网资源进行唯一定位,而且还能告诉我们如何对该资源进行操作。Http把对一个资源的操作限制在4个方法以内: GET, POST,PUT和DELETE,这正是对资源CRUD操作的实现。由于资源和URI是一一对应的,执行这些操作的时候URI是没有变化的,这和以往的 Web开发有很大的区别。正由于这一点,极大的简化了Web开发,也使得URI可以被设计成更为直观的反映资源的结构,这种URI的设计被称作 RESTful的URI。这位开发人员引入了一种新的思维方式:通过URL来设计系统结构。当然了,这种设计方式对一些特定情况也是不适用的,也就是说不是所有的URI都可以RESTful的。
REST 之所以可以提高系统的可伸缩性,就是因为它要求所有的操作都是无状态的。由于没有了上下文(Context)的约束,做分布式和集群的时候就更为简单,也可以让系统更为有效的利用缓冲池(Pool)。并且由于服务器端不需要记录客户端的一系列访问,也减少了服务器端的性能。
REST 无状态的
每一个来自客户端的request必须包含所有必要的信息,即不能从服务器端获得任何保存的上下文信息。
REST 的 “客户机-无状态-服务器” 约束禁止在服务器上保存会话状态。符合这一约束进行设计
1,可以提高系统的可靠性和可伸缩性。它不需要昂贵的维护和支持费用,因为状态并不在服务器上维护。
2,可以进行资源缓存。Web的高速缓存既可以驻留在客户主机中,也可以驻留在中间网络高速缓存服务器主机中
安全机制
REST使用了简单有效的安全模型。REST中很容易隐藏某个资源,只需不发布它的U RI;而在资源上也很容易使用一些安全策略,比如可以在每个 URI 针对 4个通用接口设置权限;再者,以资源为中心的 Web服务是防火墙友好的,因为 GET的 意思就是GET, P UT 的意思就是PUT,管理员可以通过堵塞非GET请求把资源设置为只读的,而现在的基于RPC 模型的 SOAP 一律工作在 HTTP 的 POST上。
使用 SOAP RPC模型,要访问的对象名称藏在方法的参数中,因此需要创建新的安全模型。
例子源码:
web.xml
==========================================
springmvc-servlet.xml
===============================================
controller: RESTful URL风格controller
==================================================
View:RESTful URL风格URI
============================================
Spring3.0实现REST实例 http://blog.csdn.net/leecho571/article/details/6559758
spring 3.0 应用springmvc 构造RESTful URL 详细讲解 http://badqiu.iteye.com/blog/473301,文章里面的UrlRewriteFilter功能,springMVC自己已经实现,就是 <mvc:resources location="/image/" mapping="/image/**"/>同能同等。
springmvc定制REST风格 以及 与JSR303 Bean校验整合 http://www.cnblogs.com/dennisit/archive/2013/04/13/3019391.html
用 UrlRewriteFilter 实现 URL 重写 http://panyongzheng.iteye.com/blog/1901290
Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler /> http://perfy315.iteye.com/blog/2008763
拦截器:
SpringMVC中使用Interceptor拦截器 http://panyongzheng.iteye.com/blog/2084629
基于注解风格的Spring-MVC的拦截器 http://blog.csdn.net/li_xiao_ming/article/details/9704337
springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的
@RequestMapping 用法详解之地址映射 http://blog.sina.com.cn/s/blog_72827fb10101pl9i.html
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 http://panyongzheng.iteye.com/blog/1797446
传统的Web应用大都是B/S架构,它包括了如下一些规范:
1. 客户-服务器
这种规范的提出,改善了用户接口跨多个平台的可移植性,并且通过简化服务器组件,改善了系统的可伸缩性。最为关键的是通过分离用户接口和数据存储这两个关注点,使得不同用户终端享受相同数据成为了可能。
2. 无状态性
无状态性是在客户-服务器约束的基础上添加的又一层规范。他要求通信必须在本质上是无状态的,即从客户到服务器的每个request都必须包含理解该 request所必须的所有信息。这个规范改善了系统的可见性(无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前 request,而不必了解所有的request历史),可靠性(无状态性减少了服务器从局部错误中恢复的任务量),可伸缩性(无状态性使得服务器端可以很容易的释放资源,因为服务器端不必在多个request中保存状态)。同时,这种规范的缺点也是显而易见得,由于不能将状态数据保存在服务器上的共享上下文中,因此增加了在一系列request中发送重复数据的开销,严重的降低了效率。
3.缓存
为了改善无状态性带来的网络的低效性,我们填加了缓存约束。缓存约束允许隐式或显式地标记一个response中的数据,这样就赋予了客户端缓存 response数据的功能,这样就可以为以后的request共用缓存的数据,部分或全部的消除一部分交互,增加了网络的效率。但是用于客户端缓存了信息,也就同时增加了客户端与服务器数据不一致的可能,从而降低了可靠性。
B/S架构的优点是其部署非常方便,但在用户体验方面却不是很理想。为了改善这种情况,
我们引入了REST。
REST在原有的架构上增加了三个新规范:统一接口,分层系统和按需代码。
1.统一接口
REST 架构风格的核心特征就是强调组件之间有一个统一的接口,这表现在REST世界里,网络上所有的事物都被抽象为资源,而REST就是通过通用的链接器接口对资源进行操作。这样设计的好处是保证系统提供的服务都是解耦的,极大的简化了系统,从而改善了系统的交互性和可重用性。并且REST针对Web的常见情况做了优化,使得REST接口被设计为可以高效的转移大粒度的超媒体数据,这也就导致了REST接口对其它的架构并不是最优的。
2.分层系统
分层系统规则的加入提高了各种层次之间的独立性,为整个系统的复杂性设置了边界,通过封装遗留的服务,使新的服务器免受遗留客户端的影响,这也就提高了系统的可伸缩性。
3.按需代码
REST允许对客户端功能进行扩展。比如,通过下载并执行applet或脚本形式的代码,来扩展客户端功能。但这在改善系统可扩展性的同时,也降低了可见性。所以它只是REST的一个可选的约束。
REST的设计准则
REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。REST提出了如下设计准则:
1. 网络上的所有事物都被抽象为资源(resource);
2. 每个资源对应一个唯一的资源标识符(resource identifier);
3.通过通用的连接器接口(generic connector interface)对资源进行操作;
4. 对资源的各种操作不会改变资源标识符;
5. 所有的操作都是无状态的(stateless)。
REST中的资源所指的不是数据,而是数据和表现形式的组合,比如“最新访问的10位会员”和“最活跃的10为会员”在数据上可能有重叠或者完全相同,而由于他们的表现形式不同,所以被归为不同的资源,这也就是为什么REST的全名是Representational State Transfer的原因。资源标识符就是URI(Uniform Resource Identifier),不管是图片,Word还是视频文件,甚至只是一种虚拟的服务,也不管你是xml格式,txt文件格式还是其它文件格式,全部通过 URI对资源进行唯一的标识。
REST是基于Http协议的,任何对资源的操作行为都是通过Http协议来实现。以往的Web开发大多数用的都是Http协议中的GET和 POST方法,对其他方法很少使用,这实际上是因为对Http协议认识片面的理解造成的。Http不仅仅是一个简单的运载数据的协议,而是一个具有丰富内涵的网络软件的协议。他不仅仅能对互联网资源进行唯一定位,而且还能告诉我们如何对该资源进行操作。Http把对一个资源的操作限制在4个方法以内: GET, POST,PUT和DELETE,这正是对资源CRUD操作的实现。由于资源和URI是一一对应的,执行这些操作的时候URI是没有变化的,这和以往的 Web开发有很大的区别。正由于这一点,极大的简化了Web开发,也使得URI可以被设计成更为直观的反映资源的结构,这种URI的设计被称作 RESTful的URI。这位开发人员引入了一种新的思维方式:通过URL来设计系统结构。当然了,这种设计方式对一些特定情况也是不适用的,也就是说不是所有的URI都可以RESTful的。
REST 之所以可以提高系统的可伸缩性,就是因为它要求所有的操作都是无状态的。由于没有了上下文(Context)的约束,做分布式和集群的时候就更为简单,也可以让系统更为有效的利用缓冲池(Pool)。并且由于服务器端不需要记录客户端的一系列访问,也减少了服务器端的性能。
REST 无状态的
每一个来自客户端的request必须包含所有必要的信息,即不能从服务器端获得任何保存的上下文信息。
REST 的 “客户机-无状态-服务器” 约束禁止在服务器上保存会话状态。符合这一约束进行设计
1,可以提高系统的可靠性和可伸缩性。它不需要昂贵的维护和支持费用,因为状态并不在服务器上维护。
2,可以进行资源缓存。Web的高速缓存既可以驻留在客户主机中,也可以驻留在中间网络高速缓存服务器主机中
安全机制
REST使用了简单有效的安全模型。REST中很容易隐藏某个资源,只需不发布它的U RI;而在资源上也很容易使用一些安全策略,比如可以在每个 URI 针对 4个通用接口设置权限;再者,以资源为中心的 Web服务是防火墙友好的,因为 GET的 意思就是GET, P UT 的意思就是PUT,管理员可以通过堵塞非GET请求把资源设置为只读的,而现在的基于RPC 模型的 SOAP 一律工作在 HTTP 的 POST上。
使用 SOAP RPC模型,要访问的对象名称藏在方法的参数中,因此需要创建新的安全模型。
例子源码:
web.xml
==========================================
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问 http://localhost/foo.css ,现在http://localhost/static/foo.css --> <!-- <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping>--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>openSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> </filter> <!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static/foo.css --> <!--<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>--> <!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <servlet-name>springmvc</servlet-name> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
springmvc-servlet.xml
===============================================
<?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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </context:component-scan> <mvc:annotation-driven/> <!-- 静态资源配置 --> <mvc:resources location="/resources/" mapping="/resources/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <mvc:resources location="/image/" mapping="/image/**"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="requestContextAttribute" value="rc"/> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
controller: RESTful URL风格controller
==================================================
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by Administrator on 14-6-13. */ @Controller @RequestMapping("/rsu") public class RestFulUrlController { @RequestMapping(method = RequestMethod.GET, value = "/-1/add") public ModelAndView add(HttpServletRequest request, HttpServletResponse response) { ModelAndView view = new ModelAndView("index"); view.addObject("message","This is a test message[add]"); return view; } @RequestMapping(method = RequestMethod.POST, value = "/{id}/insert") public ModelAndView insert(@PathVariable("id") Long id, HttpServletRequest request, HttpServletResponse response) { ModelAndView view = new ModelAndView("index"); view.addObject("message","This is a test message[insert]"); return view; } @RequestMapping(method = RequestMethod.PUT, value = "/{id}/update") public ModelAndView update(@PathVariable("id") Long id, HttpServletRequest request, HttpServletResponse response) { ModelAndView view = new ModelAndView("index"); view.addObject("message","This is a test message[update]"); return view; } @RequestMapping(method = RequestMethod.DELETE, value = "/{id}/del") public ModelAndView del(@PathVariable("id") Long id,HttpServletRequest request, HttpServletResponse response) { ModelAndView view = new ModelAndView("index"); view.addObject("message","This is a test message[del]"); return view; } @RequestMapping(method = RequestMethod.GET, value = "/{id}/detail") public ModelAndView detail(@PathVariable("id") Long id,HttpServletRequest request, HttpServletResponse response) { ModelAndView view = new ModelAndView("index"); view.addObject("message","This is a test message[detail]"); return view; } }
View:RESTful URL风格URI
============================================
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>SpringRestfulUrl</title> <link rel="stylesheet" href="/SpringRestfulUrl/css/main.css"/> </head> <body> <a href="/SpringRestfulUrl/rsu/-1/add">add-get方式</a> <br> <a href="/SpringRestfulUrl/rsu/10/detail">detail-get方式</a> <form action="/SpringRestfulUrl/rsu/10/insert" method="post"> <button type="submit">insert-post方式</button> </form> <form action="/SpringRestfulUrl/rsu/10/update" method="post"> <input type="hidden" name="_method" value="put"/> <button type="submit">update-put方式</button> </form> <form action="/SpringRestfulUrl/rsu/10/del" method="post"> <input type="hidden" name="_method" value="delete"/> <button type="submit">delete-delete方式</button> </form> <div>${message}</div> <img src="/SpringRestfulUrl/image/01.png"> </body> </html>
- SpringRestfulUrl.rar (63.2 KB)
- 下载次数: 7
发表评论
-
Spring Boot 属性配置
2016-06-24 11:04 1189Spring Boot 属性配置和使用 http://blog ... -
Spring Boot 集成MyBatis
2016-06-24 10:55 2035Spring Boot 集成MyBatis http://bl ... -
Spring MVC防重复提交
2016-06-17 15:47 1652http://my.oschina.net/zyqjustin ... -
Spring容器加载完之后执行特定任务
2016-06-17 15:36 2293http://my.oschina.net/simpleton ... -
使用spring-session和shiro来代理session的配置
2016-06-16 11:21 12067使用spring-session和redis来代理sessio ... -
JSTL 的 if else : 有 c:if 没有 else 的处理
2016-06-14 09:52 1343http://blog.csdn.net/xiyuan1999 ... -
spring mvc 请求转发和重定向
2016-06-14 09:48 1407http://blog.csdn.net/jackpk/art ... -
mvc:view-controller
2016-05-18 10:26 1089http://blog.csdn.net/lzwglory/a ... -
spring配置事物的方式:注解和aop配置
2016-05-14 00:26 4111参考: Spring AOP中pointcut express ... -
分布式任务调度组件 Uncode-Schedule
2016-05-13 14:47 2293http://www.oschina.net/p/uncode ... -
Mybatis分库分表扩展插件
2016-05-12 15:47 1632http://fangjialong.iteye.com/bl ... -
spring+mybatis+atomikos 实现JTA事务
2016-05-11 22:00 5531sping配置多个数据源 不同用户操作不同数据库 http:/ ... -
Spring中使用注解 @Scheduled执行定时任务
2016-05-10 09:39 1574原文:http://dwf07223.blog.51cto.c ... -
Spring中配置Websocket
2016-05-05 16:55 1285spring+websocket整合(springMVC+sp ... -
redis 集群中Session解决方案之Spring Session
2016-05-04 08:54 1323集群中Session解决方案之Spring Session h ... -
使用Spring-data进行Redis操作
2016-05-04 08:54 4806使用Spring-data进行Redis操作 http://z ... -
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
2016-05-03 13:35 1067Spring4新特性——集成Bean Validation 1 ... -
SpringMVC介绍之Validation
2016-05-03 13:10 994SpringMVC介绍之Validation http://h ... -
spring 注解方式下使用commons-validator 验证表单
2016-05-03 11:08 3085原文: http://www.programgo.com/ar ... -
Spring MVC学习详解
2016-04-28 09:13 1010原文 http://blog.csdn.net/alsocod ...
相关推荐
**SpringMVC+RESTful 框架详解** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它将业务逻辑、数据处理和用户界面分离,提高了代码的可测试性和可维护性。RESTful是...
在本项目创建中,我们涉及了多个核心的Java Web开发技术,包括SpringMVC、Spring、MyBatis、Maven以及Tomcat服务器,同时利用RESTful风格来构建API接口。这些技术是现代企业级应用开发的常用组合,下面将详细阐述...
它支持RESTful风格的URL设计,提供视图解析、数据绑定、模型-视图-控制器模式的实现,使得开发者可以更专注于业务逻辑的编写,而不是繁琐的HTTP交互细节。 **Hibernate4.3** Hibernate4.3版本在原有的基础上进行了...
在Spring 3.0框架中,Spring MVC是一个强大的用于构建Web应用程序的模块,它支持构建RESTful风格的URL,使得应用程序更加符合Web服务的最佳实践。REST(Representational State Transfer)是一种设计模式,强调通过...
SpringMVC是Spring框架的一部分,用于构建高效、灵活的Web应用程序,而SwaggerUI则是一个用于生成、测试和展示RESTful API的交互式界面。这个名为"SwaggerDemo"的压缩包文件很可能是提供了一个示例,展示了如何在...
1. **URL映射与请求方法**:RESTful服务通常通过URL来标识资源,并使用HTTP的方法(GET、POST、PUT、DELETE等)来表示操作。Spring MVC提供`@RequestMapping`注解,允许我们为控制器类或方法指定URL模板,同时通过`@...
它简化了Web应用的开发,提供了处理HTTP请求、转发、异常处理等功能,同时支持RESTful风格的URL设计。 3. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎...
描述中的"springmvc+restful整合jar包开箱即用!"意味着这个压缩包内包含了一些预配置的库和配置文件,使得用户可以直接使用,无需进行复杂的配置过程。这通常包括Spring MVC的核心库,如spring-webmvc,以及与...
SpringMVC支持多种视图技术,如JSP、FreeMarker、Velocity等,同时也支持RESTful风格的URL设计,方便创建Web服务。 Mybatis是一个持久层框架,它简化了数据库操作,避免了传统的JDBC代码的繁琐。Mybatis通过XML或...
SpringMVC通过依赖注入(DI)和面向切面编程(AOP)提供松耦合,同时支持RESTful风格的URL设计,便于API的开发。 2. **Dubbo**:Dubbo是阿里巴巴开源的高性能服务框架,用于实现分布式服务。它提供了服务注册与发现...
标题 "spring+springmvc+spring data jpa+mysql" 涉及到的是一个基于Java的Web开发技术栈,主要用于构建高效、灵活的企业级应用程序。这个技术组合包括四个主要组件: 1. **Spring框架**:这是一个全面的企业级应用...
通过`@RequestMapping`等注解,我们可以轻松地定义URL映射,实现RESTful API。 MyBatis则是对JDBC的封装,它允许开发者编写SQL语句并动态地注入参数。通过XML配置文件或注解,MyBatis将SQL与Java代码分离,提高了...
Spring MVC强调组件的解耦,提供模型绑定、数据验证、国际化等功能,同时支持RESTful风格的URL设计。 **Spring** Spring框架是Java企业级应用的核心,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。在...
在现代Web应用开发中,SpringMVC、RESTful API和AngularJS是三个关键的技术组件,它们共同构建了一个高效、灵活且可扩展的开发架构。本文将深入探讨这三大技术的核心概念以及如何将它们结合使用。 **SpringMVC** ...
在SpringMVC中实现RESTful风格,可以创建更加灵活、易于理解和维护的API。让我们深入探讨一下SpringMVC如何实现RESTful风格以及相关知识点。 首先,理解RESTful的基本原则至关重要。REST(Representational State ...
9. **RESTful API设计**:SpringMVC后端需要提供清晰、规范的RESTful API接口,供前端H5页面调用,进行数据的交互和操作命令的发送。 10. **安全与权限管理**:在微信硬件接入过程中,必须考虑到用户隐私和数据安全...
SpringMVC提供了注解驱动的开发方式,如@Controller、@Service、@Autowired等,使得代码更加简洁,同时也支持RESTful风格的URL设计。 3. MyBatis: MyBatis是一个持久层框架,它允许开发者编写SQL语句并将其映射到...
在本教程中,我们将探讨如何使用 SpringMVC 实现基于 RESTful 风格的 CRUD(Create、Read、Update、Delete)操作。 **CRUD 操作概述** CRUD 操作是任何数据驱动应用的基础,它们分别代表创建新记录、读取现有记录、...
使用SpringMVC构建高效的Web应用,实现URL映射、视图解析、参数绑定等;以及利用SpringBoot快速搭建项目,配置各种微服务功能,实现热部署和性能监控。 通过阅读《狂神Spring+SpringMVC+SpringBootB站课堂笔记》的...
`@PathVariable`注解用于从URL路径中提取参数。 3. **更新(UPDATE)**: 更新资源通常使用`PUT`方法。更新用户信息: ```java @PutMapping("/users/{id}") public ResponseEntity<User> updateUser(@...