• 深入理解lombok


    一、Lombok是什么

           Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库,是帮助我们编写getter或者equals方法的一个“工具”,不需要我们再写getter、setter或者equals方法。其实他的魅力并不在于帮助我们简单的编写对应的getter或者更多的方法,还有一点在于,当我们的字段发生改变时,lombok也会对相应的getter方法进行改变。
    引入依赖即可使用:

    		<dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    

    二、为什么要在自己的项目中使用Lombok

           要回答这个问题,仅仅知道什么是Lombok是不够的。在讲解原理之前我想再提一点 ,这也是为什么要使用Lombok的关键所在:根据Lombok的使用规则,如果想要使用Lombok就需要删除在项目中(JavaBean)存在的已经生成的getter方法setter方法以及equals和hash方法,当然Lombok也提供了对打印日志的处理。这样在使用Lombok以后就会大大减少项目中的代码量,同时由于Lombok有自动修改的功能,这也提供了项目中代码的执行效率。

    综上所述,使用Lombok的两点主要原因就是:

    (1)、简化冗余的JavaBean代码;

    (2)、大大提高JavaBean中方法的执行效率;

    三、Lombok实现原理

            Lombok实现了JSR 269 API规范,javac在Java6开始支持这一规范,只要程序实现了该API,就能在javac运行的时候得到调用,那么Lombok在编译时使用的就是javac,具体流程如下:

           首先是项目的源代码文件,在经过编译处理以后,lombok会使用自己的抽象语法树去进行注解的匹配,如果在项目中的某一个类中使用了lombok中的注解,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并经过自动编译匹配来生成对应类中的getter或者setter方法,达到简化代码的目的。

    四、Lombok注解详解

    Lombok主要常用的注解有

    • @Data注解:这个注解包含范围最广,它包含@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode注解;

    • @NoArgsConstructor注解:生成对应的无参构造方法;

    • @AllArgsConstructor注解:生成对应的有参构造方法;

    • @Slf4j注解:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可,其实就是替你生成一个log属性

    	private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
    
    • @Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;
    • @Accessors(chain = true) 生成的setter方法中返回用this代替void

    五、使用Lombok可能需要注意的地方

    (1)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。

  • 相关阅读:
    Web知识点收集
    UIView 的 autoresizingMask 属性 详解。
    OpenStack-Neutron-VPNaaS-API
    OpenStack-Neutron-VPNaaS-测试和使用
    OpenStack-Neutron-VPNaaS-配置
    OpenStack-Neutron-安全组
    Openstack-Namespaces
    OpenStack-RabbitMQ-获取vm、磁盘、网络设备的状态变化
    Openstack-Ceilometer-SNMP的使用
    Openstack-Ceilometer-Alarm运行机制
  • 原文地址:https://www.cnblogs.com/seasail/p/12179377.html
Copyright © 2020-2023  润新知