微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringBoot注解

@Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource认按byName自动注入。

@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);
@ApiOperation:描述一个类的一个方法,或者说一个接口

在Controller中经常放在一个方法上面描述方法作用

@ApiOperation(value = "Delete User", notes = "")

@RestController注解,相当于@Controller+@ResponseBody两个注解的结合

@RequestBody接收的不是一个Json对象,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType
@RequestBody的作用其实是将json格式串的数据转为java对象。
这里前端发送的是json格式的数据
注意:前端发送json数据时要指定contentType为json格式,否则后台接收无法转化为User对象

  function fun() {
        $.ajax({
          url: '${pageContext.request.contextpath}/ajax',
          contentType:'application/json;charset=utf-8',
          type: 'post',
          data: '{"age":19,"name":"张三"}'
        });
      }
通过@RequestBody 接收User数据

    @RequestMapping("/ajax")
//    这里可以接收String的数据
    public String ajax(@RequestBody User user){
        System.out.println("controller的ajax请求");
        System.out.println(user.toString());
        return "add";
    }

向前端传递json格式数据


    @RequestMapping("/add")
    @ResponseBody
    public Object add(){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name","aaa");
        return jsonObject;
    }

1、作用:

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
2、语法:

语法:@RequestParam(value="参数名",required="true/false",defaultValue="")

@RequestParam是传递参数的.

@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。

public String queryUserName(@RequestParam String userName)
在url中输入:localhost:8080/**/?userName=zhangsan

请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。
@JsonFormat

 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;

value:参数名

required:是否包含该参数,认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

defaultValue:认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用认值

@Valid
用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。

@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping
public User create (@Valid @RequestBody User user) {
System.out.println(user.getId());
System.out.println(user.getUsername());
System.out.println(user.getpassword());
user.setId(“1”);
return user;
}
}
然后在 User 类中添加验证信息的要求:

public class User {
private String id;

@NotBlank(message = "密码不能为空")
private String password;

}
@NotBlank 注解所指的 password 字段,表示验证密码不能为空,如果为空的话,上面 Controller 中的 create 方法会将message 中的"密码不能为空"返回。
当然也可以添加其他验证信息的要求:

限制 说明
@Null 限制只能为null
@NotNull 限制必须不为null
@AssertFalse 限制必须为false
@AssertTrue 限制必须为true
@DecimalMax(value) 限制必须为一个不大于指定值的数字
@DecimalMin(value) 限制必须为一个不小于指定值的数字
@Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future 限制必须是一个将来的日期
@Max(value) 限制必须为一个不大于指定值的数字
@Min(value) 限制必须为一个不小于指定值的数字
@Past 限制必须是一个过去的日期
@Pattern(value) 限制必须符合指定的正则表达式
@Size(max,min) 限制字符长度必须在min到max之间
@Past 验证注解的元素值(日期类型)比当前时间早
@NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐