SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍SpringBoot 中常用注解 Controller RestControll RequestMappi 介绍 Controller 处理 http 请求 Controller ResponseBody RequestMappi value hello method RequestMetho GET

SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

@Controller 处理http请求

@Controller //@ResponseBody public class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } }

本文以Thymeleaf为例介绍使用模版,具体步骤如下:

第一步:在pom.xml文件中添加如下模块依赖:

 <dependency> <groupId>org.springframework.boot 
   groupId> <artifactId>spring-boot-starter-thymeleaf 
   artifactId>  
   dependency>

第二步:修改控制器代码,具体为:

 / * Created by wuranghao on 2017/4/7. */ @Controller public class HelloController { 
    @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } } 

第三步:在resources目录的templates目录下添加一个hello.html文件,具体工程目录结构如下:

SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

其中,hello.html文件中的内容为:

 <h1>wojiushimogui 
   h1>

这样,再次运行此项目之后,在浏览器中输入:localhost:8080/hello

就可以看到hello.html中所呈现的内容了。

因此,我们就直接使用@RestController注解来处理http请求来,这样简单的多。

@RestController

Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合。

即@RestController是@ResponseBody和@Controller的组合注解。

@RestController public class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } }

与下面的代码作用一样

@Controller @ResponseBody public class HelloController { 
    @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } }

@RequestMapping 配置url映射

@RequestMapping此注解即可以作用在控制器的某个方法上,也可以作用在此控制器类上。

当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

看两个例子

例子一:@RequestMapping仅作用在处理器方法上

@RestController public class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } }

以上代码sayHello所响应的url=localhost:8080/hello。

例子二:@RequestMapping仅作用在类级别上

/ * Created by wuranghao on 2017/4/7. */ @Controller @RequestMapping("/hello") public class HelloController { 
    @RequestMapping(method= RequestMethod.GET) public String sayHello(){ return "hello"; } }

以上代码sayHello所响应的url=localhost:8080/hello,效果与例子一一样,没有改变任何功能。

例子三:@RequestMapping作用在类级别和处理器方法上

/ * Created by wuranghao on 2017/4/7. */ @RestController @RequestMapping("/hello") public class HelloController { 
    @RequestMapping(value="/sayHello",method= RequestMethod.GET) public String sayHello(){ return "hello"; } @RequestMapping(value="/sayHi",method= RequestMethod.GET) public String sayHi(){ return "hi"; } } 

这样,以上代码中的sayHello所响应的url=localhost:8080/hello/sayHello。

sayHi所响应的url=localhost:8080/hello/sayHi。

SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

从这两个方法所响应的url可以回过头来看这两句话:当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

最后说一点的是@RequestMapping中的method参数有很多中选择,一般使用get/post.

小结

本篇博文就介绍了下@Controller/@RestController/@RequestMappping几种常用注解,下篇博文将介绍几种如何处理url中的参数的注解@PathVaribale/@RequestParam/@GetMapping。

其中,各注解的作用为:

@PathVaribale 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203771.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:37
下一篇 2026年3月19日 下午9:38


相关推荐

  • Flask 让jsonify返回的json串支持中文显示

    Flask 让jsonify返回的json串支持中文显示用flask时遇到了返回字符串支持中文显示的问题,在web端显示的是utf-8的编码,而不是中文,如下图。虽然不影响接口的读取,但是可读性太差,于是研究了一下怎么直接显示成中文。最后找到了解决方案如下,在配置中加入下面一行代码就OK了。app.config[‘JSON_AS_ASCII’]=Falsejson.dumps()解决同样的问题可以加入ensure_ascii=False参考资料:

    2022年5月23日
    35
  • DNS负载均衡

    DNS负载均衡1)DNS负载均衡的介绍对于负载均衡的一个典型应用就是DNS负载均衡。庞大的网络地址和网络域名绝对是负载均衡体现优势的地方。那么它的具体原理是如何的呢?本文就将为大家详细介绍一下相关内容。DNS负载均

    2022年7月1日
    22
  • 深度学习 arm linux移植过程整理[通俗易懂]

    深度学习 arm linux移植过程整理[通俗易懂]一、环境搭建下载虚拟机VMwareWorkstation自行下载激活成功教程下载ubtun因运行环境使用ubtun18所虚拟机下载的ubtun18下载比较慢的话可以更换国内镜像https://cn.ubuntu.com/download/server/step1vm中安装ubtun虚拟机https://zhuanlan.zhihu.com/p/141033713下载支持包编译服务器需要安装包makecmake交叉编译链arm-linux-gunebhf例如:ap

    2026年3月7日
    4
  • Oracle 11g新特性invisible index(不可见的索引)[通俗易懂]

    Oracle 11g新特性invisible index(不可见的索引)

    2022年1月31日
    63
  • 常用公共数据集[通俗易懂]

    常用公共数据集[通俗易懂]原文链接:http://homepages.inf.ed.ac.uk/rbf/CVonline/Imagedbase.htmCVonline:图像数据库(Google直译的结果,希望对大家有帮助)按主题索引行动数据库属性识别自主驾驶生物/医药相机校准脸和眼/虹膜数据库指纹一般图像一般RGBD和深度数据集一般视频手,掌握,手动和手势数据库图像,视频和形状数据库检索对象数据库人(静),人体姿势人员检测…

    2022年5月18日
    54
  • leetcode_1049. Last Stone Weight II_[DP]

    leetcode_1049. Last Stone Weight II_[DP]

    2021年7月7日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号