浅学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>
或创建项目时加入依赖
IDEA安装lombok插件
IDEA版本在2020.3以上,不需要安装Lombok插件。如果IDEA 版本在2020.3以下,需要安装Lombok插件
File-->Settings
设置页面中的Plugins-->输入lombok,可以查询-->Lombok Plugin,-->Lombok Plugin-->Install按钮
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;
}
使用@Data的效果
使用@AllArgsConstructor@EqualsAndHashCode生成hashCode和equals方法和生成包含类中所有属性的构造方法,效果
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.P6SpyDriver
mybatis-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 形式,自定义扩展的参数,必须大小写一致
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!