首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【SpringBoot】部分注解介绍

【SpringBoot】部分注解介绍

作者头像
谙忆
发布2021-01-21 14:18:31
发布2021-01-21 14:18:31
3560
举报
文章被收录于专栏:程序编程之旅程序编程之旅

Controller注解

用来处理Http请求的 用在类上面

RequestMapping注解

用来配置Url的映射 可在类或者方法上 在类上时,该注解的映射作用在该类的所有方法上 需要两个地址都访问该注解的方法时,可以将地址用逗号隔开,例如:

代码语言:javascript
复制
@RequestMapping(value = {"/people","people2"},method = RequestMethod.GET)
public People people() {//返回的是对象的JSON字符串
    return people;
}

另外还有@GetMapping,@PostMapping,@PutMapping等组合注解 @GetMapping(value=”/test”)其实就是相当于 @RequestMapping(value = “/test”,method = RequestMethod.GET) 可以看一下GetMapping注解的实现:

代码语言:javascript
复制
...
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
    method = {RequestMethod.GET}
)
public @interface GetMapping {
    @AliasFor(
        annotation = RequestMapping.class
    )
    String name() default "";

   ...
}

可以看到,GetMapping注解继承了RequestMapping注解,并且对于RequestMapping注解中的method属性有一个GET的赋值 所以囖,一目明了。

RestController注解

Spring4之后新加的注解,相当于@Controller和@ResponseBody注解的配合使用。 可以直接返回json字符串 比如上一篇博客使用的,直接在Controller返回一个类对象,在前台看到的是json字符串 可以看下该注解的源码:

代码语言:javascript
复制
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}

PathVariable注解

获取url中的参数。 例如:

代码语言:javascript
复制
    @GetMapping(value = "/getId/{id}")
    public Integer getPeople(@PathVariable(value = "id")Integer ida) {
        return ida;
    }

我特意将变量命名为ida以区分url和注解中的id。

RequestParam注解

获取请求参数的值 例如:

代码语言:javascript
复制
    @GetMapping(value = "/getName")
    public String getPeople(@RequestParam(value = "name")String nameStr) {
        return nameStr;
    }

不做过多解释啦,学过spring和springmvc的朋友早就懂了的。 其实RequestParam注解也可以省略不写的,这个时候,url传进来的参数就需要和变量名对应上了

还可以给参数设置默认值,可以这样使用:

代码语言:javascript
复制
    /**
     * @RequestParam
     * required-false  表示不是必须传的
     * defaultValue  这个就是参数的默认值,但是注意,这里的值必须是字符串
     * @param nameStr
     * @return
     */
    @GetMapping(value = "/say")
    public String say(@RequestParam(value = "name",required = false,defaultValue = "0") String nameStr) {
        return nameStr;
    }

这篇挺简单的,没有什么多的东西,就没啥代码了,我在后面把那个Controller类贴出来。 建议初学的先从前面的该类博客看

代码语言:javascript
复制
package cn.chenhaoxiang;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * Created with IntelliJ IDEA.
 * User: 陈浩翔.
 * Date: 2017/12/25.
 * Time: 下午 9:44.
 * Explain:
 */
@RestController
public class HelloController {
    @Autowired
    private People people;
    @RequestMapping(value = {"/people","people2"},method = RequestMethod.GET)
    public People people() {//返回的是对象的JSON字符串
        return people;
    }

    @GetMapping(value = "/getId/{id}")
    public Integer getId(@PathVariable(value = "id")Integer ida) {
        return ida;
    }

    @GetMapping(value = "/getName")
    public String getName(@RequestParam(value = "name")String nameStr) {
        return nameStr;
    }

    @GetMapping(value = "/getNameStr")
    public String getNameStr(String nameStr) {//url传进来的参数需要和变量名对应上
        return nameStr;
    }

    /**
     * @RequestParam
     * required-false  表示不是必须传的
     * defaultValue  这个就是参数的默认值,但是注意,这里的值必须是字符串
     * @param nameStr
     * @return
     */
    @GetMapping(value = "/say")
    public String say(@RequestParam(value = "name",required = false,defaultValue = "0") String nameStr) {
        return nameStr;
    }

}

本文章由[谙忆]编写, 所有权利保留。 欢迎转载,分享是进步的源泉。

转载请注明出处:http://chenhaoxiang.cn/2017/12/28/2254/ 本文源自谙忆的博客

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/01/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Controller注解
  • RequestMapping注解
  • RestController注解
  • PathVariable注解
  • RequestParam注解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档