转载

[Java 开发利器Lombok] 常用注解演示

在以往的对象模型编码时,我们需要写一大堆的get/set以及不同的构造函数等。Lombok为我们提供了一个非常好的插件形式。

在大多数的项目中,只需要使用到以下集中Annotation就足够了,如果需要查看更多的选项,请参考: 传送门

  • @Getter
  • @Setter
  • @ToString
  • @RequiredArgsConstructor 生成final 字段的构造函数

    /**
*/
    @RequiredArgsConstructor
    class UserVO {
        private final Integer id;
        private final String name;
        private int age;
    }
    
    /**
     * 编译后生成的代码
     */
    class UserVO {
        private final Integer id;
        private final String name;
        private int age;
    
        public UserVO(Integer id, String name) {
            this.id = id;
            this.name = name;
        }
  }
- `@Data`
组合注解
/**
 * @see Getter
 * @see Setter
 * @see RequiredArgsConstructor
 * @see ToString
 * @see EqualsAndHashCode
 * @see lombok.Value
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
    /**
     * ...
     */
    String staticConstructor() default "";
}
- `@Builder`
改变原有赋值模式

- 使用前
  ![UTOOLS1563926459568.png](https://i.loli.net/2019/07/24/5d379fbc8f66545767.png)
- 使用后(建造者模式,在Feign源码中被大量使用)
  ![UTOOLS1563926487313.png](https://i.loli.net/2019/07/24/5d379fd7b939662788.png)

- `@Slf4j`
lombok 提供,等价于
public static final Logger LOGGER =
    LoggerFactory.getLogger(UserCenterApplication.class);

/**

  • This annotation is valid for classes and enumerations.
  • @see org.slf4j.Logger
  • @see org.slf4j.LoggerFactory#getLogger(java.lang.Class)
  • @see lombok.extern.apachecommons.CommonsLog @CommonsLog
  • @see lombok.extern.java.Log @Log
  • @see lombok.extern.log4j.Log4j @Log4j
  • @see lombok.extern.log4j.Log4j2 @Log4j2
  • @see lombok.extern.slf4j.XSlf4j @XSlf4j
  • @see lombok.extern.jbosslog.JBossLog @JBossLog
  • @see lombok.extern.flogger.Flogger @Flogger

*/

@Retention(RetentionPolicy.SOURCE)

@Target(ElementType.TYPE)

public @interface Slf4j {

/** @return The category of the constructed Logger. By default, it will use the type where the annotation is placed. */
String topic() default "";

}

原文  https://segmentfault.com/a/1190000019865620
正文到此结束
Loading...