首页 > 其他分享 >浅学lombok

浅学lombok

时间:2024-01-13 14:00:45浏览次数:14  
标签:浅学 生成 注解 lombok true Lombok 属性


Lombok(Project Lombok)是一个用于 Java 编程语言的开源库,旨在减少 Java 代码中的冗余和样板代码,提高开发人员的生产力。它通过使用注解来自动生成 Java 类的常见方法和代码,从而使开发人员能够编写更简洁、更具可读性和更易维护的代码。Lombok 的主要目标是简化 Java 开发,减少样板代码,使代码更加精炼,从而提高开发效率。

Lombok可以通过注解,帮助开发人员消除JAVA中尤其是POJO(实体)类中 的冗长代码。

环境介绍

技术栈

springboot+mybatis-plus+mysql

软件

版本

mysql

8

IDEA

IntelliJ IDEA 2022.2.1

JDK

1.8

Spring Boot

2.7.13

mybatis-plus

3.5.3.2

Lombok能以简单的注解形式来简化Java类中的大量样板代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量。

lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、hashcode、toString等方法,使代码看起来更简洁。

pom.xml手动加入依赖

SpringBoot项目Lombok的加入依赖

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

普通maven项目Lombok加入依赖

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

或创建项目时加入依赖

浅学lombok_bc

IDEA安装lombok插件

IDEA版本在2020.3以上,不需要安装Lombok插件。如果IDEA 版本在2020.3以下,需要安装Lombok插件

File-->Settings

设置页面中的Plugins-->输入lombok,可以查询-->Lombok Plugin,-->Lombok Plugin-->Install按钮

浅学lombok_bc_02

lombok常用注解说明
@Setter    注解在类或属性,注解在类时为所有属性生成setter方法,注解在属性上时只为该属性生成setter方法
@Getter    使用方法同@Setter,区别在于生成的是getter方法
@ToString    注解在类,添加toString方法
@EqualsAndHashCode    注解在类,生成hashCode和equals方法
@NoArgsConstructor    注解在类,生成无参的构造方法
@RequiredArgsConstructor    注解在类,为类中需要特殊处理的属性生成构造方法,比如final和被@NonNull注解的属性
@AllArgsConstructor    注解在类,生成包含类中所有属性的构造方法
@Data    注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法
@Slf4j    注解在类,生成log变量,用于记录日志
@Builder    将类转变为建造者模式

案例

实体类

@Data
public class Host {

    //@Value("${host01.host}")
    private String host;

    //@Value("${host01.port}")
    private String port;

    //@Value("${host01.user}")
    private String user;

    //@Value("${host01.password}")
    private String password;

}

浅学lombok_mysql_03

使用@Data的效果

浅学lombok_Java_04

使用@AllArgsConstructor@EqualsAndHashCode生成hashCode和equals方法和生成包含类中所有属性的构造方法,效果

浅学lombok_Java_05

springboot使用lombok,使用lombok常用注解即可,最常见的是@Data、@EqualsAndHashCode、@NoArgsConstructor

lombok与mybatis、mybatis-plus逆向工程搭配使用很使得开发效率更高

pom.xml

server:
   port: 8007 management:
   server:
     port: 8008
   endpoints:
     web:
       exposure:
         include: "*"
   endpoint:
     prometheus:
       enabled: true
     health:
       show-details: always
   metrics:
     export:
       prometheus:
         enabled: true spring:
   mvc:
     path match:
       matching-strategy: ant_path_matcher
   profiles:
     active: dev  application:
     name: ProvideAPIServices
   datasource:
     dynamic:
       primary: sys2 #设置默认的数据源或者数据源组,默认值即为master
       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
       datasource:
         oracle:
           username: system
           password: 111111
           url: jdbc:oracle:thin:@127.0.0.1:.172:1521:orcl
           driver-class-name: oracle.jdbc.driver.OracleDriver
 #          driver-class-name: com.mysql.jdbc.Driver
         wms:
           url: jdbc:p6spy:mysql://127.0.0.1:3306/Wms?useUnicode=true&characterEncoding=UTF-8
           username: root
           password: pwd
           driver-class-name: com.p6spy.engine.spy.P6SpyDriver
 #          driver-class-name: com.mysql.jdbc.Driver
         sys2:
           username: root
           password: pwd
           url: jdbc:p6spy:mysql://127.0.0.1:3306/sys?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
           driver-class-name: com.p6spy.engine.spy.P6SpyDrivermybatis-plus:
   configuration:
     #输出日志
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     #配置映射规则
     map-underscore-to-camel-case: true #表示支持下划线到驼蜂的映射
     #隐藏mybatis图标
   global-config:
     banner: false
     db-config:
       logic-delete-field: status
       logic-not-delete-value: 1
       logic-delete-value: 0
 #
 #mybatis:
 #  mapper-locations=classpath: com/example/dao/*.xml
 pagehelper:
   propertyName: propertyValue
   reasonable: false
   defaultCount: true # 分页插件默认参数支持 default-count 形式,自定义扩展的参数,必须大小写一致

标签:浅学,生成,注解,lombok,true,Lombok,属性
From: https://blog.51cto.com/u_15081423/9232236

相关文章

  • 浅学JWT跨域认证
    JsonWeb令牌简称JWT由Header+Payload+Signature组成HeaderJWT头是一个描述JWT元数据的JSON对象,alg属性表示签名使用的算法,默认为HMACSHA256(写为HS256);typ属性表示令牌的类型,JWT令牌统一写为JWT。最后,使用Base64URL算法将上述JSON对象转换为字符串保存Payload有效载荷部分,是JWT的......
  • lombok 常用注解图文详解(含代码)
    文章目录1.@Getter/@Setter1.1可用于成员变量上1.1.1可选择生成方法的修饰符1.2可用于类上1.2.1静态变量不会生成相应方法1.2.2常量不会生成Setter方法1.2.3单独设置某个变量不可查看(同1.1)[email protected]排除某些成员变量2.2输出指定变量[email protected]生......
  • 「快速上手」Lombok常用注解大全
    Lombok注解教学Lombok是一个Java库,它通过注解的方式来简化Java代码的编写,减少样板代码(boilerplatecode)的重复,提高代码的可读性和可维护性。本文将介绍Lombok库中常用的注解及其用法。1.@Getter和@Setter@Getter和@Setter是Lombok中最常用的注解之一,它们用于自动生成JavaBe......
  • Lombok,Swagger,Jackson中的注解汇总
    Lombok相关(通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法):#maven添加依赖或下载jar包:<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version>......
  • Lombok依赖
     1.介绍Lombok依赖可在编译时,自动添加JavaBean结构。例如常用的getter、setter、toString、构造器和equals等方法。2.导入(pom.xml)Maven依赖:<!--lombok可自动添加javaBean结构--><dependency><groupId>org.projectlombok</gr......
  • MapStruct+Maven+Lombok问题NoSuchBeanDefinitionException、does not have an access
    概述先直接说我遇到的问题吧,SpringBoot应用启动失败:ERROR|org.springframework.boot.web.embedded.tomcat.TomcatStarter|onStartup|61|-ErrorstartingTomcatcontext.Exception:org.springframework.beans.factory.UnsatisfiedDependencyException.Message:Error......
  • Lombok中@Data的坑
    一、问题:实体类中日常使用@Data注解来生成getter/setter方法,有个字段为xPoint的属性,在使用MapStruct映射该字段的时候,发现无法映射到该字段@Mapping(target="x",source="xPoint")二、分析@Data对该字段生成的getter方法为publicStringgetXPoint(){ returnthis.xPo......
  • lombok到底都用来做什么
    前言:我使用lombok一般都是用在实体类的外面写个@data省得写getsettostring方法,今天详细了解一下关于lombok的有一些实用技巧 @Cleanup//用于IO流的关闭,给局部变量的注释,相当于产生了一个trycatch,在finally里判断流是否打开,并进行关闭@SneakyThrows//会帮你自动注入trycatch,......
  • Lombok
    概述https://www.pdai.tech/md/develop/package/dev-package-x-lombok.html原理核心之处就是对于annotation的解析;jdk5引入的注解支持,允许在编译时&运行时对元数据进行动态处理:运行时解析:运行时能够解析的注解,必须将@Retention设置为RUNTIME,比如@Rete......
  • class lombok.javac.apt.LombokProcessor
    classlombok.javac.apt.LombokProcessor(inunnamedmodule@0x4587f0f9)cannotaccessclasscom.sun.tools.javac.processing.JavacProcessingEnvironment(inmodulejdk.compiler)becausemodulejdk.compilerdoesnotexportcom.sun.tools.javac.processingtounn......