springboot-controller的使用详解

 更新时间:2017年08月23日 09:58:29   作者:JS_HCX  
本篇文章主要介绍了springboot-controller的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Controller的使用

一、

  • @Controller:处理http请求
  • @RestController:Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller
  • @RequestMapping:配置url映射

1.对于控制器层,如果只使用@Controller注解,会报500,即controller必须配合一个模板来使用:

使用spring官方的一个模板:

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

在resources下面的templates文件夹下建立index.html:

<h1>hello Spring Boot!</h1>

HelloController:

@Controller
@ResponseBody
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

  @RequestMapping(value = "/hello",method = RequestMethod.GET)
  public String say(){
//    return girlProperties.getCupSize();
    return "index";
  }
}

@RestController相当于@Controller和@ResponseBody组合使用

如果程序需要通过hello和hi都能访问到,只需在@RequestMapping的value中添加如下:

@RestController
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

  @RequestMapping(value = {"/hello", "/hi"},method = RequestMethod.GET)
  public String say(){
    return girlProperties.getCupSize();
  }
}

二、

  • @PathVariable:获取url中的数据
  • @RequestParam:获取请求参数的值
  • @GetMapping:组合注解

@PathVariable:

方式一:

@RestController
@RequestMapping("/hello")
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

  @RequestMapping(value = {"/say/{id}"},method = RequestMethod.GET)
  public String say(@PathVariable("id") Integer id){
    return "id:"+id;
//    return girlProperties.getCupSize();
  }
}

结果:

方式二:也可以把id写在前面:

@RestController
@RequestMapping("/hello")
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

  @RequestMapping(value = {"/{id}/say"},method = RequestMethod.GET)
  public String say(@PathVariable("id") Integer id){
    return "id:"+id;
//    return girlProperties.getCupSize();
  }
}

结果:

方式三:使用传统方式访问:

@RestController
@RequestMapping("/hello")
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

  @RequestMapping(value = "/say",method = RequestMethod.GET)
  public String say(@RequestParam("id") Integer myId){
    return "id:"+myId; //方法参数中的Integer id这个id不需要与前面对应
//    return girlProperties.getCupSize();
  }
}

结果:


注解简写:@RequestMapping(value = "/say",method = RequestMethod.GET)等价于:@GetMapping(value = "/say")

@RestController
@RequestMapping("/hello")
public class HelloController {

  @Autowired
  private GirlProperties girlProperties;

//  @RequestMapping(value = "/say",method = RequestMethod.GET)
  //@GetMapping(value = "/say")//等价于上面的
  @PostMapping(value = "/say")
  public String say(@RequestParam("id") Integer myId){
    return "id:"+myId; //方法参数中的Integer id这个id不需要与前面对应
//    return girlProperties.getCupSize();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • maven多模块打包注意事项详解

    maven多模块打包注意事项详解

    这篇文章主要为大家介绍了maven多模块打包注意事项详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 关于Lombok @Data注解:简化Java代码的魔法棒

    关于Lombok @Data注解:简化Java代码的魔法棒

    Lombok库通过@Data注解自动生成常见的样板代码如getter、setter、toString等,极大减少代码量,提高开发效率,@Data注解集成了@ToString、@EqualsAndHashCode、@Getter、@Setter、@RequiredArgsConstructor等注解的功能
    2024-10-10
  • LambdaQueryWrapper的实现原理分析和lambda的序列化问题

    LambdaQueryWrapper的实现原理分析和lambda的序列化问题

    这篇文章主要介绍了LambdaQueryWrapper的实现原理分析和lambda的序列化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • 浅谈SpringBoot中的Bean初始化方法 @PostConstruct

    浅谈SpringBoot中的Bean初始化方法 @PostConstruct

    这篇文章主要介绍了SpringBoot中的Bean初始化方法 @PostConstruct,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • SpringBoot+mybatis+thymeleaf实现登录功能示例

    SpringBoot+mybatis+thymeleaf实现登录功能示例

    这篇文章主要介绍了SpringBoot+mybatis+thymeleaf实现登录功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Spring中的@EnableWebSecurity注解详解

    Spring中的@EnableWebSecurity注解详解

    这篇文章主要介绍了Spring中的@EnableWebSecurity注解详解,EnableWebSecurity注解是个组合注解,它的注解中,又使用了@EnableGlobalAuthentication注解,需要的朋友可以参考下
    2023-12-12
  • java元注解@Inherited的使用详解

    java元注解@Inherited的使用详解

    这篇文章主要介绍了java元注解@Inherited的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Spring init-method与destroy-method属性的用法解析

    Spring init-method与destroy-method属性的用法解析

    这篇文章主要介绍了Spring init-method与destroy-method属性的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java调用接口返回乱码问题及解决

    java调用接口返回乱码问题及解决

    这篇文章主要介绍了java调用接口返回乱码问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • SpringBoot的ConfigurationProperties或Value注解无效问题及解决

    SpringBoot的ConfigurationProperties或Value注解无效问题及解决

    在SpringBoot项目开发中,全局静态配置类读取application.yml或application.properties文件时,可能会遇到配置值始终为null的问题,这通常是因为在创建静态属性后,IDE自动生成的Get/Set方法包含了static关键字
    2024-11-11

最新评论