IDEA 安装lombok及使用详解

这篇具有很好参考价值的文章主要介绍了IDEA 安装lombok及使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

① 为什么使用

② 如何安装

1.安装lombok插件:

   2.添加lombok的maven的pom.xml依赖:  

3.实体类示例代码Student.java

4.测试类LombokTest.java

   5. 输出结果:   

③ 常用且特殊注解


① 为什么使用

  项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要编写或生成get/set等方法,很大程度上减少了代码量,而且减少了代码维护的负担。故强烈建议项目中使用lombok,去掉bean中get、set、toString、equals和hashCode等方法的代码。

② 如何安装

当前你使用的ide未安装lombok. lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,减少代码冗余.

1.安装lombok插件:

      具体流程如图:

      IDEA 安装lombok及使用详解

点击下载就好啦,此处已经下载,创建项目测试

IDEA 安装lombok及使用详解

   2.添加lombok的maven的pom.xml依赖:  

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

3.实体类示例代码Student.java

package com.lombok.demo;
 
 
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

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

4.测试类LombokTest.java

package com.lombok.demo;
 
import lombok.extern.java.Log;
 

@Log
public class LombokTest {
 
    public static void main(String[] args) {
 
        Student student = new Student();
        student.setAge(27);
        student.setMale("woman");
        student.setName("xs");
        student.setStudentNo("2017");
 
        System.out.println(student.toString());
 
        Student student2 = new Student();
        student2.setAge(27);
        student2.setMale("woman");
        student2.setName("xs");
        student2.setStudentNo("2017");
 
        System.out.println(student.equals(student2));
 
        student2.setStudentNo("2018");
 
        System.out.println(student.equals(student2));
 
        log.info("lombok test");
 
    }
}

   5. 输出结果:   

Student(name=xs, age=27, male=woman, studentNo=2017)
true
false
lombok test

③ 常用且特殊注解

@AllArgsConstructor

@AllArgsConstructor 替代@Autowired构造注入,多个bean 注入时更加清晰

@Slf4j
@Configuration
@AllArgsConstructor
public class RouterFunctionConfiguration {
    private final HystrixFallbackHandler hystrixFallbackHandler;
    private final ImageCodeHandler imageCodeHandler;
    
}

// 替代如下代码

@Slf4j
@Configuration
public class RouterFunctionConfiguration {
    @Autowired
    private  HystrixFallbackHandler hystrixFallbackHandler;
    @Autowired
    private  ImageCodeHandler imageCodeHandler;
}

@RequiredArgsConstructor

@RequiredArgsConstructor 只会构造注入 final 注释的属性,推荐使用

@RestController
@RequiredArgsConstructor
@RequestMapping("/user")
@Api(value = "user", tags = "用户管理模块")
public class SysUserController {

	private final SysUserService userService;
}

@SneakyThrows

@SneakyThrows 抛出异常

@SneakyThrows
private void checkCode(ServerHttpRequest request) {
    String code = request.getQueryParams().getFirst("code");
    
    if (StrUtil.isBlank(code)) {
        throw new ValidateCodeException("验证码不能为空");
    }
    
    redisTemplate.delete(key);
}


// 不使用就要加这个抛出
private void checkCode(ServerHttpRequest request) throws ValidateCodeException {
    String code = request.getQueryParams().getFirst("code");
    
    if (StrUtil.isBlank(code)) {
        throw new ValidateCodeException("验证码不能为空");
    }
}

@UtilityClass

@UtilityClass 工具类再也不用定义static的方法了,直接就可以Class.Method 使用

@UtilityClass
public class Utility {
    
    public String getName() {
        return "name";
    }
}

public static void main(String[] args) {
    System.out.println(Utility.getName());
}

@Cleanup

@CleanUp: 清理流对象,不用手动去关闭流,多么优雅文章来源地址https://www.toymoban.com/news/detail-458029.html

@Cleanup
OutputStream outStream = new FileOutputStream(new File("text.txt"));
@Cleanup
InputStream inStream = new FileInputStream(new File("text2.txt"));
byte[] b = new byte[65536];
while (true) {
    int r = inStream.read(b);
    if (r == -1) break;
    outStream.write(b, 0, r); 
}

到了这里,关于IDEA 安装lombok及使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?

    作者:京东零售 姜波 来源:京东云开发者社区 各位小伙伴在字符串拼接时应该都见过下面这种提示: 内容翻译:报告StringBuffer、StringBuilder或StringJoiner的任何用法,这些用法可以用单个java.lang.String串联来替换。使用字符串串联可以使代码更短、更简单。只有当得到的串联至

    2024年02月05日
    浏览(63)
  • IDEA 安装lombok及使用详解

    目录 ① 为什么使用 ② 如何安装 1.安装lombok插件:    2.添加lombok的maven的pom.xml依赖:   3.实体类示例代码Student.java 4.测试类LombokTest.java    5. 输出结果:    ③ 常用且特殊注解 ① 为什么使用   项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、e

    2024年02月06日
    浏览(30)
  • 为什么Spring和IDEA不推荐使用@Autowired注解,有哪些替代方案?

    在使用Spring框架和JetBrains IDEA集成开发环境(IDE)进行Java开发时,你可能经常会遇到@Autowired注解。@Autowired是Spring框架中用于实现依赖注入的核心注解之一。然而,近年来,Spring和IDEA都不再推荐使用@Autowired注解,并提出了更好的替代方案。本文将详细分析为什么Spring和IDEA不

    2024年02月07日
    浏览(62)
  • 为什么DNS使用UDP而不是TCP详解!

    DNS(Domain Name System)使用UDP(User Datagram Protocol)而不是TCP(Transmission Control Protocol)的主要原因是出于性能和效率的考虑。下面详细解释为什么DNS选择使用UDP协议: 小型请求和快速响应:DNS查询通常是小型请求,仅需要几个字节的数据传输。UDP是无连接的协议,它不需要在通

    2024年02月02日
    浏览(46)
  • git将文件或目录添加进了.gitignore文件,为什么不生效?

    如题,之所以将文件添加进了.gitignore文件但不生效,是因为该文件已经被add进git仓库了,已经被git托管了,这时git就没法ignore了。解决办法是先用git rm --cached将这些文件从git仓库中取消托管并提交,然后.gitignore文件才会生效。详细见如下描述。 已经添加到git仓库中的文件,

    2024年02月03日
    浏览(52)
  • <dependency> idea中为什么这个变黄色

      在IDE中,当你的代码出现黄色高亮时,通常表示存在警告或建议的提示。对于Maven的 dependency 标签来说,黄色高亮可能有以下几种原因: 依赖项未找到:黄色高亮可能表示IDE无法找到指定的依赖项。这可能是由于配置错误、网络问题或仓库中缺少该依赖项等原因导致的。你

    2024年02月14日
    浏览(41)
  • 为什么pycharm远程连接服务器运行时总会出现找不到文件或目录

    目录 解决方法 为什么会出现这样的问题 我们需要修改一个设置 具体步骤如下: 1、右下角点击它,选择interpreter setting  2、进入下图界面,点击箭头所指位置,选择show all 3、进入下图界面,选择你要修改的python interpreter,点哪个🖊进行修改    4、进入下图界面,默认情况下

    2024年02月15日
    浏览(66)
  • 电脑bios使用的uefi启动,系统盘使用的mbr格式,为什么安装完系统无法进入?

      在电脑的安装系统过程中,我们会遇到一些问题,比如说使用UEFI启动但是磁盘分区使用MBR格式,导致系统安装完成之后无法引导。这是因为UEFI启动只支持GPT格式的磁盘分区。 在本文中,我们将探讨如何将磁盘转换成GPT格式,并重新安装系统,以便正确地引导系统。    

    2024年02月12日
    浏览(56)
  • 报错:在从 Git 上拉取代码后,使用 npm install 安装依赖失败,但使用 yarn 可以成功安装,这是为什么

    在从 Git 上拉取代码后,使用 npm install 安装依赖失败,但使用 yarn 可以成功安装的原因可能有多种,以下是一些常见原因: 安装的依赖库版本不兼容。有时候,package.json 文件中的依赖库版本与本地或全局的 Node.js 环境不兼容,或与已安装的其他依赖库的版本不兼容,在使用

    2024年02月08日
    浏览(59)
  • Spring和IDEA都不推荐用的@Autowired注解,为什么还有那么多人用?

    @Autowired的默认装配 我们都知道在spring中@Autowired注解,是用来自动装配对象的。通常,我们在项目中是这样用的: 没错,这样是能够装配成功的,因为默认情况下spring是按照类型装配的,也就是我们所说的byType方式。 此外,@Autowired注解的required参数默认是true,表示开启自动

    2023年04月18日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包