初识SpringBoot(二):Controller类的使用
上文我们简单地介绍了一下SpringBoot的简单项目构建,本文我们来开始介绍Controller的使用。
说到Controller,我们很容易想到SpringMvc中的Controller,事实上,两者区别不大。首先我们来说说Controller类的注解,SpringMvc中,@Controller是我们经常使用的一个Controller注解,但是在前文中我们给Controller的注解为@RestController注解,两者的区别在于,@RestController是@Controller和@ResponseBody的结合,支持快捷的返回一个JSON对象,我们可以试着将上文中的@RestController改为@Controller,会发现页面报错,如下图:
因为我们知道,@Controller的返回String类型,是要配合视图解析器才能返回JSP页面,而@RestController则是将返回的String内容直接给前台。
再就是RequestMapping注解使用,使用方式和SpringMVC一模一样,value表示映射URL,method表示请求类型,如果不写则默认为get和post皆响应。一般我们可以将@GetMapping和@PostMapping来替代method使用。RequestMapping中value可以写成数组的形式,来用一个方法处理多个URL,也可以加在类上,作为命名空间。
Mapping方法中的参数,可以用来获取请求的url以及请求的参数,先说获取URl,Controller方法的代码如下:
package com.example.first;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.naming.Name;
@RestController
public class Hello {
@Autowired
private Boy boy;
@RequestMapping(value = "/{id}/hello")
public Boy hello(@PathVariable("id")int id)
{
System.out.println(id);
return boy;
}
}
浏览器输入URL以及控制台截图如下:
在requestMapping注解中的value内需要加上一个美元符号,标记参数,对应着@PathVariable中的值,加在参数前面,完成对URL的获取。
当然还有最最传统的URL传值方式,此时我们需要用另外一个注解获取参数,代码如下:
package com.example.first;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.naming.Name;
@RestController
public class Hello {
@Autowired
private Boy boy;
@RequestMapping(value = "/hello")
public Boy hello(@RequestParam("id") int id)
{
System.out.println(id);
return boy;
}
}
浏览器截图和控制台截图如下:
推荐阅读
-
SpringBoot+Mybatis项目使用Redis做Mybatis的二级缓存的方法
-
使用TensorFlow实现二分类的方法示例
-
C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换(第二版-增加深度读取和更新功能)
-
使用TensorFlow实现二分类的方法示例
-
SpringBoot使用validation-api实现对枚举类参数校验的方法
-
超详细的typeScript笔记(二)类的基本使用
-
Spring(18)——使用Java类的形式定义bean(二)
-
springboot项目使用mongoTemplate模板操作mongodb的工具类
-
SpringBoot使用Jsp预览水晶报表(二):预览连接Oracle数据库的水晶报表
-
SpringBoot使用jasypt加解密密码的实现方法(二)