浅谈SpringMVC对RESTfull的支持

 更新时间:2018年02月06日 13:46:33   作者:eson_15  
这篇文章主要介绍了浅谈SpringMVC对RESTfull的支持,分享了相关配置代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是SpringMVC对RESTfull的支持的相关内容,具体如下。

  RESTful架构,就是目前流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。RESTful架构对url进行规范,写RESTful格式的url是什么样子的呢?我们一般请求的url是类似这样子的:

http://...../xxx.action?id=001&type=aaa

  而REST的url风格是什么样子呢?一般它类似于:

http://..../xxx/001

  所以REST有个很明显的特点:使url变得简洁,将参数通过url传到服务端。springmvc也是支持这种REST风格的url的,我们定义一个controller来测试一下:

//查询商品信息,输出json,使用RESTful
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception {
  ItemsCustom itemsCustom = itemsService.findItemsById(id);
  return itemsCustom;
}

  @ResponseBody是用来将itemsCustom转成json的注解,而@PathVariable注解则是跟REST有关了,@RequestMapping(value=”/ itemsView/{id}”)中的{id}表示一个占位符,那么这里面传过来的值会传到被@PathVariable标记的形参上,如果形参和占位符中的变量一样的话,可以不用再注解中指定,否则注解中要指定这个占位符中的变量(即id)。这样的话,参数就可以通过url传到形参中来了。

  但是这样还不行,还要在前端控制器中针对REST进行配置,如下:

<!-- 配置springmvc的前端控制器DispatcherServlet,REST配置 -->
<servlet>
  <servlet-name>springmvc_rest</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/springmvc.xml</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>springmvc_rest</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

 拦截的是所有的url(/),这个配置跟之前配置好的前端控制器是没有冲突的,可以并存。经过这样配置后,就可以在浏览器中输入http://localhost:8080/SpringMVC_Study/itemsView/1来测试返回到浏览器的数据了,可以看到返回一串json数据。

  但是有个问题,使用上面的配置后会拦截所有的url,那么对静态资源也会拦截,所以DispatcherServlet也会解析静态资源,但是这样的话就会出错,所以我们要设置一下不让它解析静态资源。如:

<!-- 静态资源解析,包括js,css,img... -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/img/" mapping="/img/**"></mvc:resources>

  如果还有其他静态资源的话,也要设置一下,这样就不会去解析静态资源了,访问静态资源的时候就直接访问即可。

总结

以上就是本文关于浅谈SpringMVC对RESTfull的支持的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • SpringBoot3集成和使用Jasypt的代码详解

    SpringBoot3集成和使用Jasypt的代码详解

    随着信息安全的日益受到重视,加密敏感数据在应用程序中变得越来越重要,Jasypt作为一个简化Java应用程序中数据加密的工具,为开发者提供了一种便捷而灵活的加密解决方案,本文将深入解析Jasypt的工作原理,需要的朋友可以参考下
    2024-01-01
  • 使用MockMvc进行controller层单元测试 事务自动回滚的完整案例

    使用MockMvc进行controller层单元测试 事务自动回滚的完整案例

    这篇文章主要介绍了使用MockMvc进行controller层单元测试 事务自动回滚的完整案例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java、freemarker保留两位小数

    java、freemarker保留两位小数

    这篇文章主要介绍了 java、freemarker保留两位小数的实现方法,然后给大家补充介绍了freemarker保留两位小数的详解,需要的朋友可以参考下
    2017-03-03
  • JavaMail实现发送邮件功能

    JavaMail实现发送邮件功能

    这篇文章主要为大家详细介绍了JavaMail实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • SpringBoot参数校验与国际化使用教程

    SpringBoot参数校验与国际化使用教程

    这篇文章主要给大家介绍了关于SpringBoot参数校验与国际化使用教程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java之springcloud Sentinel案例讲解

    Java之springcloud Sentinel案例讲解

    这篇文章主要介绍了Java之springcloud Sentinel案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

    详解使用JavaMailSender给曾经心爱的她再中秋发送一封特别的邮件

    网站的服务端向用户发邮件时,邮件中往往需要携带图片,链接等内容。所以为了方便起见,我们一般发送HTML格式的邮件,那么怎么去拼一个HTML格式的邮件呢?——Thymeleaf。开始之前,先新建一个SpringBoot项目,并添加需要用到的依赖。然后就可以继续往下了
    2022-09-09
  • Java编写中容易搞错的一些东西

    Java编写中容易搞错的一些东西

    Java编写中容易搞错的一些东西...
    2006-12-12
  • 使用EasyPoi实现多Sheet页导出的示例代码

    使用EasyPoi实现多Sheet页导出的示例代码

    在项目开发中,我们常常会遇到导出多Sheet页的需求,本文降维打击介绍一下如何使用EasyPoi实现这一功能,文中的示例代码简洁易懂,有需要的可以参考下
    2025-03-03
  • springboot多数据源配置及切换的示例代码详解

    springboot多数据源配置及切换的示例代码详解

    这篇文章主要介绍了springboot多数据源配置及切换,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09

最新评论