Lombok核心注解总结(二)

简介: Lombok核心注解总结(二)

文章目录

一、如何添加Lombok?

1、引入包

   <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.18</version>
          <scope>provided</scope>
   </dependency>

2、IDEA添加Lombok

点击File-- Settings设置界面,然后在左侧找到Plugins, 在右侧找到Lombok点击安装即可。

二、Lombok注解

Lombok注解文档

Lombok官方下载

1、@Slf4j

作用:@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解。可以在项目的配置文件中配置日志输出的地址,一般会用在接口层和关键的业务层。在正常的日志输出会写一行长的代码,如下所示:

private final Logger logger = LoggerFactory.getLogger(当前类名.class);

为了节省代码,我们可以用@Slf4j来代替这一行代码。

应用代码:

@Slf4j
public class BookController {
     log.info("这是日志输出");
}

2、@Data

作用: 主要用于实体类上,是以下注解的集合:@ToString@EqualsAndHashCode@Getter@Setter@RequiredArgsConstructor

应用代码:

@Data
public class Book {
    private String userName;
    private String passWord;
}

3、@Getter/@Setter

作用: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等。

应用代码:

@Getter
@Setter
public class Book {
    String title;
    String author;
}

相当于:

public class Book {
    String title;
    String author;
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}

4、@ToString

作用: 作用于类,覆盖默认的toString()方法,默认情况下,将打印所有非静态字段。如果要跳过某些字段,可以用注释这些字段@ToString.Exclude。另外,可以使用精确指定要被toString方法包含的字段,先设置@ToString(onlyExplicitlyIncluded = true),然后使用@ToString.Include标记每个要包含的字段。

应用代码:

@Getter
@Setter
@ToString
public class Student {
    private String name;
    private int age;
}

5、@RequiredArgsConstructor

作用: 在我们写controller或者Service层的时候,需要注入很多的mapper接口或者另外的service接口,这时候就会写很多的@AutoWired注解,代码看起来很乱,所以使用@RequiredArgsConstructor(onConstructor =@_(@Autowired)),写在类上可以代替@AutoWired注解,需要注意的是在注入时需要用final定义,或者使用@notnull注解。

应用代码:

@RequiredArgsConstructor
public class User {
    private final String userName;
    @NonNull
    private String passWord;
}

6、@NonNull

作用: 主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。

应用代码:

@Data
public class User {
    private final String userName;
    @NonNull
    private String passWord;
}

7、@Value

作用:@Value的作用是通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值。

应用代码:

@Value("normal")
private String normal; // 注入普通字符串

8、@AllArgsConstructor

作用: 生成全参构造器

应用代码:

@Data //生成getter,setter等函数
@AllArgsConstructor //生成全参数构造函数
public class Book {
    String name;
    String age;
}

9、@NoArgsConstructor

作用: 生成无参构造函数

应用代码:

@Data //生成getter,setter等函数
@NoArgsConstructor//生成无参构造函数
public class Book {
    String name;
    String age;
}

以上只是对Lombok部分注解做了简单的解释和应用,具体实践操作还是要根据项目的需要去应用,去看源码研究原理。

上一篇:Java开发核心注解总结(一)

下一篇:Mybatis核心注解总结(三)

有什么问题欢迎和我交流。或者关注我的微信公众号码上言获得更多的学习。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2天前
|
Java 编译器 开发者
Java一分钟之-Java注解的理解与应用
【5月更文挑战第12天】本文介绍了Java注解的基础知识和常见应用,包括定义、应用和解析注解。注解在编译检查、框架集成和代码生成等方面发挥重要作用。文章讨论了两个易错点:混淆保留策略和注解参数类型限制,并提供了避免策略。提醒开发者避免过度使用注解,以保持代码清晰。理解并恰当使用注解能提升代码质量。
13 3
|
3天前
|
Java API Python
|
4天前
|
JSON 前端开发 Java
【JAVA进阶篇教学】第七篇:Spring中常用注解
【JAVA进阶篇教学】第七篇:Spring中常用注解
|
8天前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
22 2
|
8天前
|
Java 编译器 Android开发
Java注解你知多少?
Java注解你知多少?
13 1
|
9天前
|
IDE Java 数据库连接
Lombok注解大全
这些是Lombok中的一些常见注解,它们可以显著减少Java代码中的冗余代码,提高代码的可读性和可维护性。不过,在使用Lombok之前,请确保你的开发环境已经配置好支持Lombok,通常需要安装相应的插件或进行设置以使IDE(如Eclipse、IntelliJ IDEA)能够正确解析Lombok注解。
19 4
|
14天前
|
Java Spring
Java 效率编码 必备插件 Lombok 让代码更优雅
该内容是一个关于Lombok插件的教程摘要:介绍了Lombok用于减少Java开发中的模板代码,提升效率;讲解了如何在IntelliJ IDEA中安装Lombok插件,以及在pom.xml中添加依赖;并提到了@Data注解能自动生成getter/setter、equals、hashCode和toString方法,@Slf4j注解自动处理日志,@Builder用于构建对象,以及@AllArgsConstructor和@NoArgsConstructor注解生成构造函数。还鼓励探索更多Lombok的注解用法。
|
16天前
|
Java 编译器 Maven
一文解读|Java编译期注解处理器AbstractProcessor
本文围绕编译器注解都是如何运行的呢? 又是怎么自动生成代码的呢?做出了详细介绍。
|
19天前
|
存储 消息中间件 Java
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
|
20天前
|
Java 编译器 测试技术
[AIGC] Java注解的生效时机详解
[AIGC] Java注解的生效时机详解