Spring Boot(三) MVC

1、Spring MVC简介

        Spring Boot由于内嵌Tomcat、Jetty 或者 Undertow,因此非常适合开发web应用程序。大多数web应用程序可以使用spring-boot-starter-web模块来快速搭建和运行,也可以选择使用spring-boot-starter-webflux模块来构建响应式(reactive) web 应用程序。Spring MVC让我们创建一个注解有@Controller或@RestController的bean来处理http请求,controller中的方法通过@RequestMapping注解映射到http。

2、整合MVC 

1、POM文件

将spring-boot-starter依赖改为spring-boot-starter-web

<!--        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2、YAML文件

server:
  port: 8082                #端口 默认8080
  servlet:
    context-path: /shinb    #路径 默认/

 3、代码

@RestController
@RequestMapping("/person")
public class MvcController {

    @Autowired
    private Person person;

    @GetMapping("/info")
    public Person getPerson(@RequestParam String name){
        person.setName(name);
        return person;
    }
}

person类见上期

4、测试

curl http://localhost:8082/shinb/person/info?name=shiningbo
{
    "name":"shiningbo",
    "age":20,
    "married":true,
    "birth":"2021-10-09T16:00:00.000+00:00",
    "maps":{
        "k1":"v1",
        "k2":12
    },
    "lists":[
        "lisi",
        "zhaoliu"
    ],
    "dog":{
        "name":"灏忕嫍",
        "age":8
    }
}

3、MVC注解

1、@RestController

        这段代码使用了Spring@RestController注释,它将类标记为一个控制器,其中每个方法返回一个域对象而不是视图。它是同时包含@Controller和@ResponseBody的简写。

@RestController是一个组合注释,它本身带有@Controller和@ResponseBody的元注释,用来指示一个控制器,该控制器的每个方法都继承了类型级的@ResponseBody注释,因此可以直接写入响应正文,而不是使用HTML模板进行视图解析和渲染。--官网解释

即:如果有注解@ResponseBody则将方法返回值通过HttpMessageConverters转换成特定格式写入response的body;如果没有则将方法返回值通过视图解析器封装为ModelAndView对象

2、 @GetMapping

        这段代码使用的@GetMapping注解确保对/info的HTTP GET请求被映射到getPerson()方法。

其他HTTP动作也有相应的注解(例如POST的@PostMapping);

还有一个@RequestMapping注释,它们都是从这个注释派生出来的,并且可以作为同义词(例如@RequestMapping(method=GET))。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值