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

在以往的对象模型编码时,我们需要写一大堆的get/set以及不同的构造函数等。Lombok为我们提供了一个非常好的插件形式。在大多数的项目中,只需要使用到以下集中Annotation就足够了,如果需要查看更多的选项,请参考:传送门

  • @Getter
  • @Setter
  • @ToString
  • @RequiredArgsConstructor
    生成final 字段的构造函数
        /**
         * java class
         */
        @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
    • 使用后(建造者模式,在Feign源码中被大量使用)
      UTOOLS1563926487313.png
  • @Slf4j
    lombok 提供,等价于
    public static final Logger LOGGER =
        LoggerFactory.getLogger(UserCenterApplication.class);

/**
 * This annotation is valid for classes and enumerations.<br>
 * @see <a href="https://www.slf4j.org/api/org/slf4j/Logger.html">org.slf4j.Logger</a>
 * @see <a href="https://www.slf4j.org/api/org/slf4j/LoggerFactory.html#getLogger(java.lang.Class)">org.slf4j.LoggerFactory#getLogger(java.lang.Class)</a>
 * @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 "";
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值