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

原创 2018年04月15日 17:22:03

    上文我们简单地介绍了一下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配置非含main类的Controller的注解

刚开始接触SpringBoot,看了一些入门的资料,但是比较有意思的是从最简单的hello world到后面代码都不变了啊23333,要改注解的 不是在含main的类里增加其他包含Reque...
  • goodelephant
  • goodelephant
  • 2016-08-09 11:18:22
  • 6166

初识springboot

作为目前架构设计主推的微服务模式,springboot无疑是java程序员的福音,下面就开始springboot的实战之旅。 (目前已有深入应用以及与其他各大技术框架集成,本地实践笔记40余篇,后续...
  • songhaifengshuaige
  • songhaifengshuaige
  • 2016-12-22 13:18:10
  • 720

初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单...
  • u012702547
  • u012702547
  • 2016-12-20 14:47:30
  • 25180

spring boot controller注入提示找不到业务层类

如果放在controller文件夹里,会提示在controller里注入的类找不到,从而启动失败,如果BeeController.java这个入口类跟所注入的类在同一个文件夹下,就不会出现这种情况...
  • ttloveyou8
  • ttloveyou8
  • 2016-10-28 16:23:07
  • 1402

• Spring Boot 初 识 篇

Spring Boot是一个全新框架,2013年伴随着Spring4.0的发布而兴起。其设计的目的是用来简化新Spring应用的初始搭建和开发过程。         我们知道,Spring是2003...
  • u010785685
  • u010785685
  • 2017-01-22 17:24:07
  • 550

spring boot启动类和自定义controller不在相同目录,controller扫描不到

解决办法: 1.将要用的组建放在启动类包下(不规范) 2.在启动类填加注解@ComponentScan("包名")...
  • qq_23157491
  • qq_23157491
  • 2017-10-31 14:04:56
  • 119

Spring boot项目中自定义的controller不生效的解决办法

Spring boot项目中自定义controller包,里面的类没有被扫描到 需要在启动类中加扫描注解@ComponentScan("com.xiaowu.controller"...
  • magic_xiaowu
  • magic_xiaowu
  • 2018-02-24 14:35:17
  • 436

SpringBoot junit单元测试

SpringBoot + MyBatis + SpringJunit4 进行单元测试
  • congge_1993
  • congge_1993
  • 2017-06-13 16:21:30
  • 619

spring boot 自定义Controller,不能被扫描

在springboot官网照着给的介绍写了个springboot程序 pom.xml?1234567891011    org.springframework.boot    spring-boot-...
  • shouldnotappearcalm
  • shouldnotappearcalm
  • 2017-09-18 00:24:10
  • 1387

spring 或springboot对controller层方法进行测试

package com.imooc.controller; import org.junit.Test; import org.junit.runner.RunWith; import org.sp...
  • xzmeasy
  • xzmeasy
  • 2017-07-26 16:03:05
  • 1615
收藏助手
不良信息举报
您举报文章:初识SpringBoot(二):Controller类的使用
举报原因:
原因补充:

(最多只允许输入30个字)