记录一些java注解的解释和用法(坚持持续更新)

1、@JsonProperty 

 用法一、@JsonProperty注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别),关于序列化和反序列化可以看序列化/反序列化,我忍你很久了,淦!

用法二、@JsonProperty 有一个属性Access,用来控制是否 能被【序列化】或者【反序列化】,默认是不受控制的。

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) 仅做反序列化操作,简单理解只能写入。

@JsonProperty(access = JsonProperty.Access.READ_ONLY) 只能序列化,不能反序列化。,简单理解只能读取。

2、@Transient

实体类中使用了@Table注解后,想要添加表中不存在的字段,就要使用@Transient这个注解了。

3、@Autowired 

它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。用法如下:

@Autowired
protected AdSpaceDao adSpaceDao;

[A]
@Autowired可以标注在属性上、方法上和构造器上,来完成自动装配

@AllArgsConstructor注解用于生成全参构造函数,默认生成构造函数的访问权限也是public。注解加在类上时,会为所有字段生成构造函数。

[C]
@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。

@Component:定义Spring管理Bean(也就是将标注@Component注解的类交由spring管理)

[D]
@Data : 注在类上,提供类的get、set、equals、hashCode、toString等方法

[E]
@EqualsAndHashCode :注在类上,提供对应的 equals 和 hashCode 方法

[G]
@Getter :注在属性上,提供 get 方法

[F]
@FeignClient标签的常用属性如下:
name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
url: url一般用于调试,可以手动指定@FeignClient调用的地址
decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
path: 定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path,server.servlet-path时使用

[L]
@Log4j/@Slf4j :注在类上,提供对应的 Logger 对象,变量名为 log

[N]
@NoArgsConstructor :注在类上,提供类的无参构造

[R]

@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。

@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。通常用于接收POST、DELETE等类型的请求数据,GET类型也可以适用。

在GET请求中,不能使用@RequestBody。
在POST请求,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,对于参数转化的配置必须统一。
可以使用多个@RequestParam获取数据,@RequestBody不可以

@PathVariable 是spring3.0的一个新功能:接收请求路径中占位符的值
一般也是用于Get请求,URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中
例如:localhost:8080/id/1

@RestController 是@controller和@ResponseBody 的结合

@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端

@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口,如果每个接口都写上@Autowired,这样看起来就会很繁琐,@RequiredArgsConstructor注解可以代替@Autowired注解
 
[P]
@PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
特点:1、只有一个非静态方法能使用此注解
           2、被注解的方法不得有任何参数
           3、被注解的方法返回值必须为void
           4、被注解方法不得抛出已检查异常
           5、此方法只会被执行一次

@PreDestroy 与 @PostConstruct 相反,为程序环境整体结束前执行的动作

[S]
@Setter :注在属性上,提供 set 方法

[T]
@Transactional注解是Spring框架提供的一个用于声明式事务管理的注解。它可以应用在方法或类上,用于标识需要进行事务管理的方法或类

@TableField注解
1、 主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰)
2、 实体类中的属性字段在表中不存在的问题

@TableName(value = …)当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找)

@TableId(type = …)指定实体类的属性为对应的主键,主要有以下几种:
 // 数据库ID自增  IdType.AUTO

// 该类型为未设置主键类型(默认)IdType.NONE 
/**
 * 用户输入ID
 * <p>该类型可以通过自己注册自动填充插件进行填充</p>
 */
IdType.INPUT


/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
//1.全局唯一ID (idWorker)  IdType.ID_WORKER
 
//2.全局唯一ID (UUID)  IdType.UUID
 
//3.字符串全局唯一ID (idWorker 的字符串表示)   IdType.ID_WORKER_STR

[V]
@Validation
是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值