RequestMapping 作用
@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一。这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。
web请求响应架构图
整个请求响应的流程如上所示,要配置 Web 请求的映射,就需要用上 @RequestMapping 注解。 开始我们从比较简单的URL路径,例如 localhost:port/hutooldemo来说,下面计划url如下: /hutooldemo /hutooldemo/ : index方法 /hutooldemo/goodbye : goodbye方法 /hutooldemo/user : getUser方法 /hutooldemo/*: 其他uri处理方法:
类上注解
在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。如上图所示的/hutooldemo可以统一映射到类上。
方法注解
添加方法级别的注解来进一步指定到处理方法的映射关系。如上图所示的/hutooldemo后的路径处理可以映射到不同的方法; /hutooldemo/ : index方法 /hutooldemo/goodbye : goodbye方法 /hutooldemo/user : getUser方法 /hutooldemo/*: 其他uri处理方法:
RequestMapping 示例
package com.demo.hutool.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import com.demo.hutool.model.HutoolUser;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.hutool.system.SystemUtil;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
@RestController
@RequestMapping("/hutooldemo")
public class HutoolControl {
@RequestMapping(value={"","/"})
public String index() {
StringBuilder sb = new StringBuilder();
sb.append("<pre>");
sb.append("Hello, Hutool Demo 5.7!");
sb.append("<pre>");
return sb.toString();
}
@RequestMapping("/goodbye")
public String goodbye()
{
return "goodbye hutooldemo...";
}
@RequestMapping("/user")
public HutoolUser getUser()
{
Console.print("today is {}",DateUtil.now());
HutoolUser user=new HutoolUser("fum",DateUtil.parse("1978-01-01") );
return user;
}
@RequestMapping("/*")
public String other()
{
return "other: hutool except ...3";
}
}
单个uri
@RequestMapping("/goodbye")
public String goodbye()
{
return "goodbye hutooldemo...";
}
单个uri(返回对象的json)
@RequestMapping("/user")
public HutoolUser getUser()
{
Console.print("today is {}",DateUtil.now());
HutoolUser user=new HutoolUser("fum",DateUtil.parse("1978-01-01") );
return user;
}
单个uri(带参数)
RequestParam: 1)通过value,指定参数名 2)通过required,指定参数是否必填 3)没有指定value,那么参数名默认是函数的入参变量名
@RequestMapping("/user")
public HutoolUser getUser(@RequestParam(value = "name", required = false) String userName)
{
Console.print("name is {}",userName);
HutoolUser user=new HutoolUser(userName,DateUtil.parse("1978-01-01") );
return user;
}
多个uri
@RequestMapping(value={"","/"})
public String index() {
StringBuilder sb = new StringBuilder();
sb.append("<pre>");
sb.append("Hello, Hutool Demo 5.7!");
sb.append("<pre>");
return sb.toString();
}
剩余uri
@RequestMapping("/*")
public String other()
{
return "other: hutool except ...3";
}
|