在JavaBean中常用注解如下:
@SuppressWarnings(value = "serial")
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Data
这类注解定义都会有相应的元注解(通俗讲: 专职负责注解其他注解的,用来标示其他注解的适用范围和作用域)
常用元注解:
@Target:注解的作用目标
@Retention:注解的生命周期
@Documented:注解是否应当被包含在 JavaDoc 文档中
@Inherited:是否允许子类继承该注解
注解的定义以及解释
1、@SuppressWarnings:(是否需要抑制baen中的警告)
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
@SuppressWarnings(value = "")
2、@AllArgsConstructor(是否需要带参构造器)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@AllArgsConstructor
3、@NoArgsConstructor(是否需要无参构造器)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@NoArgsConstructor
4、@Accessors(chain = true)(是否是链式访问: 使用chain属性,setter方法返回当前对象)
@Accessors(prefix = "f")(使用prefix属性,getter和setter方法会忽视属性名的指定前缀(遵守驼峰命名))
@Accessors(fluent = true)(使用fluent属性,getter和setter方法的方法名都是属性名,且setter方法返回当前对象)
@Target({ElementType.TYPE, ElementType.FIELD})
@Retention(RetentionPolicy.SOURCE)
@Accessors
5、@Data
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@Data
包含:@see Getter @see Setter @see RequiredArgsConstructor @see ToString@see EqualsAndHashCode @see lombok.Value
实际开发总结:
常用:@AllArgsConstructor、@NoArgsConstructor、@Data(除非特别要求最好不要用@Getter,@setter)、@SuppressWarnings(有警告最好抑制警告)、@Accessors(chain = true)(可写可不写、这里牵扯到链式访问:链式访问有利于维护,对方法返回类型无要求、代码简洁、缺点不太利于代码调试)