Lombok核心注解总结(二)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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核心注解总结(三)

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

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
16天前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
110 1
|
7月前
|
Java 编译器 开发者
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
150 25
|
10月前
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
203 7
|
10月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
351 5
|
11月前
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
108 0
|
12月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
246 43
Java学习十六—掌握注解:让编程更简单
|
12月前
|
IDE Java 编译器
java的反射与注解
java的反射与注解
84 0
|
12月前
|
XML Java 数据格式
Java-spring注解的作用
Java-spring注解的作用
94 0
|
12月前
|
JSON Java 数据库
java 常用注解大全、注解笔记
关于Java常用注解的大全和笔记,涵盖了实体类、JSON处理、HTTP请求映射等多个方面的注解使用。
282 0
java 常用注解大全、注解笔记
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用