欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初识SpringBoot(二):Controller类的使用

程序员文章站 2022-05-29 22:19:22
...

    上文我们简单地介绍了一下SpringBoot的简单项目构建,本文我们来开始介绍Controller的使用。

    说到Controller,我们很容易想到SpringMvc中的Controller,事实上,两者区别不大。首先我们来说说Controller类的注解,SpringMvc中,@Controller是我们经常使用的一个Controller注解,但是在前文中我们给Controller的注解为@RestController注解,两者的区别在于,@RestController是@Controller和@ResponseBody的结合,支持快捷的返回一个JSON对象,我们可以试着将上文中的@RestController改为@Controller,会发现页面报错,如下图:

初识SpringBoot(二):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以及控制台截图如下:

初识SpringBoot(二):Controller类的使用

初识SpringBoot(二):Controller类的使用

    在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(二):Controller类的使用

初识SpringBoot(二):Controller类的使用

    

相关标签: SpringBoot