SpringCould常用注解

基础知识

dto:主要用于接受前端传过来的对象
vo:封装数据传递给前台

数据层注解

@EqualsAndHashCode:

  1. 此注解会生成equals(Object other) 和 hashCode()方法。
  2. 它默认使用非静态,非瞬态的属性
  3. 可通过参数exclude排除一些属性
  4. 可通过参数of指定仅使用哪些属性
  5. 它默认仅使用该类中定义的属性且不调用父类的方法
  6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。
  7. @equalsandhashcode(callsuper=false)表达为在对象比较时不会考虑父类中的成员,仅仅比较子类中的属性就判断是否相同
    @equalsandhashcode(callsuper=true)在比较时会考虑父类中的成员,通过父类和子类中的属性一起判断是否相同

@NotEmpty

带注解的String,collection,map或数组不能为null,也不能为空。
也就是说,有@NotEmpty注解的String、Collection、Map、数组是不能为null或长度为0

@NotBlank

验证注释的String不是null或空的,与@NotEmpty的区别在于,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的,此注解只能用于验证String类型

@NotNull

带注释的元素不能为null。接受任何类型。完美!

@Accessors

Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性

  • fluent :fluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。
@Data
@Accessors(fluent = true)
public class User {
    private Long id;
    private String name;
    
    // 生成的getter和setter方法如下,方法体略
    public Long id() {}
    public User id(Long id) {}
    public String name() {}
    public User name(String name) {}
}
  • chain:chain的中文含义是链式的,设置为true,则setter方法返回当前对象。
@Data
@Accessors(chain = true)
public class User {
    private Long id;
    private String name;
    
    // 生成的setter方法如下,方法体略
    public User setId(Long id) {}
    public User setName(String name) {}
}

  • prefix:prefix的中文含义是前缀,用于生成getter和setter方法的字段名会忽视指定前缀(遵守驼峰命名)
@Data
@Accessors(prefix = "p")
class User {
	private Long pId;
	private String pName;
	
	// 生成的getter和setter方法如下,方法体略
	public Long getId() {}
	public void setId(Long id) {}
	public String getName() {}
	public void setName(String name) {}
}

@JsonFormat

  • shap: 表示序列化后的一种类型
    @JsonFormat(shape = JsonFormat.Shape.STRING):向前端传递的时候会自动转换为字符串类型

  • pattern: 表示日期的格式

  • timezone: 默认是GMT,中国需要GMT+8

  • locale: 根据位置序列化的一种格式

其他注解

@FeignClient

服务之间的相互调用

@Valid

限制说明
@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格式

Controller层注解

@RequestMapping

在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求
RequestMapping注解有六个属性,下面我们把她分成三类进行说明。
1、 value, method;
value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
2、 consumes,produces;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3、 params,headers;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

@PathVariable

可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)

@RequestParam

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

@Component

  • @Controller 控制器(注入服务)
    用于标注控制层,相当于struts中的action层
  • @Service 服务(注入dao)
    用于标注服务层,主要用来进行业务的逻辑处理
  • @Repository(实现dao访问)
    用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
  • @Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
    泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

@Configuration

  1. @Configuration不可以是final类型;
  2. @Configuration不可以是匿名类;
  3. 嵌套的configuration必须是静态类。

@Bean

@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。
bean的描述:bean的描述可以使用 @Description来提供
bean的命名支持别名:可以使用name属性来描述。

@Sl4j

必须先加载Lombok依赖和安装lombok插件
使用log.方法名来输出日志

@RestController

@RestController注解相当于@ResponseBody + @Controller合在一起的作用

swagger注释API

@EnableSwagger2

使用swagger的前提条件,是swagger的一个配置类上面的注解。

基础Api

作用范围API使用位置
对象属性@ApiModelProperty用在出入参数对象的字段上
协议集描述 –@Api用于controller类上
协议描述 –@ApiOperation用在controller的方法上
Response集 –@ApiResponses用在controller的方法上
Response –@ApiResponse用在 @ApiResponses里边
非对象参数集–@ApiImplicitParams用在controller的方法上
非对象参数描述@ApiImplicitParam用在@ApiImplicitParams的方法里边
描述返回对象的意义@ApiModel用在返回对象类上

@ApiImplicitParam

属性取值作用
paramType查询参数类型
path以地址的形式提交数据
query直接跟参数完成自动映射赋值
body以流的形式提交 仅支持POST
header参数在request headers 里边提交
form以form表单的形式提交 仅支持POST
dataType参数的数据类型 只作为标志说明,并没有实际验证
Long
String
name
value
required参数是否必填
true必填
false非必填
defaultValue默认值

@ApiModelProperty()

用于方法,字段; 表示对model属性的说明或者数据操作更改
value–字段说明
name–重写属性名字
dataType–重写属性类型
required–是否必填
example–举例说明
hidden–隐藏

数据库相关注解

@TableName

表名注解

@TableId

@TableId 主键注解

属性类型默认值描述
valuestring“”主键字段名
typeEnumIdType.NONE主键类型

类型:

描述
Auto数据库自增
Input自行输入
ID_Worker分布式全局唯一ID 长整型类型
UUID32位UUID字符串
NONE无状态
ID_WORKER_STR分布式全局唯一ID 字符串类型

@TableField

字段处理操作注解

描述
value字段名
update预处理色图字段注入
condition预处理where实体条件
el详细注释说明
exist是否为数据库字段
strategy字段验证
fill字段填充标记

字段填充策略 FieldFill

描述
DEFAULT默认不处理
INSERT插入填充字段
UPDATE更新填充字段
INSERT_UPDATE插入和更新时填充字段
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值