ProjectLombok插件----减少 Java 应用程序中样板代码量(get、set.....)

Lombok是一个插件,用于自动生成java代码,减少 Java 应用程序中样板代码量

Lombok插件的安装(必须安装,如果不安装Eclipse等工具无法解析Lombok注解)

         去官网下载ProjectLombok的jar:lombox的官网地址: http://projectlombok.org/

         安装方法:

                1、双击下载下来的JAR包安装,会自动寻找使用的Eclipse等工具(手动添加Eclipse等工具的安装路径)。

                2、使用命令:在lombok.jar存放的目录使用 java -jar lombok.jar安装jar,默认使用eclipse

Lombok注解

  1. @val:用于变量,相当于将局部变量声明为final
  2. @Value:用于类,相当于为属性添加final声明,有Get,equals,hashcode等方法,没有Set方法
  3. @Cleanup:自动管理资源,用于局部变量,在该变量的范围之内即将执行完并且退出之前清理资源(jdbc连接数据库时关闭流)
  4. @NonNull:用于给某个方法中的参数加注解,自动对该参数进行非空校验(为空,抛异常 NullPointerException)
  5. @Builder:用于类、构造器、方法,提供Builder API(可以自己百度一下)
  6. @ToString:用于,其中有参数,如(exckude="变量名“)--在toString方法中排除xxx属性
  7. @Getter/@Setter:用于属性,不用生成get/set方法,可以指定其访问的范围
  8. @EqualsAndHashCode:用于类自动生成equals方法和hashCode方法
  9. @NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor:用于类,自动生成构造函数。如果@NonNull属性作为参数的构造函数,如果指定staticName = “of”参数,同时还会生成一个返回类对象的静态工厂方法
  10. @Data:用于类,相当于同时使用了@ToString,@Getter,@Setter,@RequiredArgsConstrutor,@EqualsAndHashCode注解,对于pojo相当美滋滋
  11. @SneakyThrows:自动抛出异常,无需显示声明
  12. @Synchronized:用于方法,将方法声明为同步,并自动加锁。锁对象是一个私有的属性$lock$LOCK,而java中的synchronized关键字锁对象是this,锁在this或者自己的类对象上存在副作用,不能阻止非受控代码去锁this或者类对象,可能会导致竞争条件或者其它线程错误
  13. @Log:根据不同的注解生成不同类型的log对象,但是实例名称都是log,有六种可选实现类
    1. @CommonsLog: log = org.apache.commons.logging.LogFactory.getLog(Example.class)
    2. @Log:log = java.util.logging.Logger.getLogger(Example.class.getName())
    3. @Log4j:log = org.apache.log4j.Logger.getLogger(Example.class)
    4. @Log4j2:log = org.apache.logging.log4j.LogManager.getLogger(Example.class)
    5. @Slf4j:log = org.slf4j.LoggerFactory.getLogger(Example.class)
    6. @XSlf4j:log = org.slf4j.ext.XLoggerFactory.getXLogger(Example.class)

         1,4,11,12注解中不存在有参数,其他的注解中都存在

使用

     1. 添加依赖

                <!-- lombox 小工具  可以使类的get、set方法使用更方便 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

     2.使用注解

         

猜你喜欢

转载自blog.csdn.net/weixin_42367340/article/details/83243003