成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SpringBoot 實戰(zhàn) (四) | 使用 LomBok

DandJ / 2181人閱讀

摘要:創(chuàng)建對象工具類設(shè)置父類設(shè)置屬性的使用范圍,如等,也可以設(shè)置屬性是否被修飾。所以顯示的是按鈕重啟。即使沒有重寫方法,依然可以調(diào)用,而且結(jié)果和重寫了方法一樣。最后奉上項目完整代碼后語以上就是我對插件的理解與使用,希望對你們有幫助。

微信公眾號:一個優(yōu)秀的廢人
如有問題或建議,請后臺留言,我會盡力解決你的問題。
前言

上周去了開年會,去的地方是溫泉度假村。老實說,我是無感的,90% 是因為沒中獎(老板太摳,兩百人只抽三個獎),10 % 是因為從小泡溫泉長大沒啥感覺。

LomBok 是什么?

LomBok 是一個插件,它能通過注解幫我們消除那些必須要寫但是重復的代碼,比如setter,getter,構(gòu)造函數(shù)之類的方法。

試想一個場景,在項目開發(fā)中,我們往往需要定義大量的數(shù)據(jù)庫實體或者某些工具 Bean ,每一個 Bean 都需要我們編寫 getter 、setter 方法、構(gòu)造方法以及 toString 等方法。這是一個非常繁瑣的過程。程序員準則,做三遍以上的重復事情就必須想辦法讓它自動化了。所以今天給你們介紹一個牛逼的插件「LomBok」。

LomBok 常用注解簡介
@Data:注解在類上,將類提供的所有屬性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法
@Setter:注解在類上,為所有屬性添加set方法、注解在屬性上為該屬性提供set方法
@Getter:注解在類上,為所有的屬性添加get方法、注解在屬性上為該屬性提供get方法
@NotNull:在參數(shù)中使用時,如果調(diào)用時傳了null值,就會拋出空指針異常
@Synchronized 用于方法,可以鎖定指定的對象,如果不指定,則默認創(chuàng)建一個對象鎖定
@Log作用于類,創(chuàng)建一個log屬性
@Builder:使用builder模式創(chuàng)建對象
@NoArgsConstructor:創(chuàng)建一個無參構(gòu)造函數(shù)
@AllArgsConstructor:創(chuàng)建一個全參構(gòu)造函數(shù)
@ToStirng:創(chuàng)建一個toString方法
@Accessors(chain = true)使用鏈式設(shè)置屬性,set方法返回的是this對象。
@RequiredArgsConstructor:創(chuàng)建對象
@UtilityClass:工具類
@ExtensionMethod:設(shè)置父類
@FieldDefaults:設(shè)置屬性的使用范圍,如private、public等,也可以設(shè)置屬性是否被final修飾。
@Cleanup: 關(guān)閉流、連接點。
@EqualsAndHashCode:重寫equals和hashcode方法。
@toString:創(chuàng)建toString方法。
如何安裝?

1、直接從 http://plugins.jetbrains.com/ 下載,然后放到IDEA 安裝文件下面的 plugins,然后重啟 IDEA。

2、在 IDEA 的 settings(windows)或者Preferences(mac),下找到 plugins 菜單,點擊 Browse repositories,如下圖

第二步搜索 LomBok 點擊 Install (我這里已經(jīng)安裝了,但是有更新。所以顯示的是 Update 按鈕)重啟 IDEA 。

代碼演示

新建 SpringBoot 項目,不會構(gòu)建的看這篇文章 使用 IDEA 構(gòu)建 Spring Boot 工程 ,構(gòu)建時勾選 web 依賴和 Lombok 依賴,完整 pom 如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.2.RELEASE
         
    
    com.nasus
    lombok
    0.0.1-SNAPSHOT
    lombok
    lombok_demo project for Spring Boot

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

新建一個 Student 類,這是使用 lombok 的類,代碼如下:

package com.nasus.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Project Name:springboot_lomnok_demo 
* Package Name:com.nasus.entity
* Date:2019/1/23 0023 14:32
* Description: TODO: 描述該類的作用
* * @author chenzy
* Copyright Notice ========================================================= * This file contains proprietary information of Eastcom Technologies Co. Ltd. * Copying or reproduction without prior written approval is prohibited. * Copyright (c) 2019 ======================================================= */ @Data //自動生成set/get方法,toString方法,equals方法,hashCode方法,不帶參數(shù)的構(gòu)造方法 @AllArgsConstructor //自動生成構(gòu)造方法 @NoArgsConstructor //自動生成構(gòu)造方法 public class Student { private String id; private String name; private int age; }

新建一個 StudentNoLombok 類,這是沒有使用 lombok 的類(此類在項目中無用處,只為與使用 Lombok 的類對比,突出使用 LomBok 類代碼的簡潔),代碼如下:

package com.nasus.entity;

import java.util.Objects;

/**
 * Project Name:springboot_lomnok_demo 
* Package Name:com.nasus.entity
* Date:2019/1/23 0023 14:34
* Description: TODO: 描述該類的作用
* * @author chenzy
* Copyright Notice ========================================================= * This file contains proprietary information of Eastcom Technologies Co. Ltd. * Copying or reproduction without prior written approval is prohibited. * Copyright (c) 2019 ======================================================= */ public class StudentNoLombok { private String id; private String name; private int age; public StudentNoLombok() { } public StudentNoLombok(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof StudentNoLombok)) { return false; } StudentNoLombok that = (StudentNoLombok) o; return age == that.age && Objects.equals(id, that.id) && Objects.equals(name, that.name); } @Override public int hashCode() { return Objects.hash(id, name, age); } @Override public String toString() { return "StudentNoLombok{" + "id="" + id + """ + ", name="" + name + """ + ", age=" + age + "}"; } }

從上面兩個類對比可以看出,使用 LomBok 插件的類比不使用簡潔美觀得多。

新建 StudentController 類,代碼如下:

package com.nasus.controller;

import com.nasus.entity.Student;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Project Name:springboot_lomnok_demo 
* Package Name:com.nasus.controller
* Date:2019/1/23 0023 14:37
* Description: TODO: 描述該類的作用
* * @author chenzy
* Copyright Notice ========================================================= * This file contains proprietary information of Eastcom Technologies Co. Ltd. * Copying or reproduction without prior written approval is prohibited. * Copyright (c) 2019 ======================================================= */ @RestController @RequestMapping("/student") public class StudentController { @GetMapping("/testLombok") public Student getStudent(){ Student student = new Student(); student.setId("6666666666"); student.setAge(24); student.setName("陳志遠"); System.out.println(student.toString()); return student; } }

啟動項目,訪問地址 http://localhost:8080/student/testLombok 瀏覽器輸出如下:

控制臺輸出如下:

由上面兩個輸出結(jié)果可以看出,LomBok 插件起作用了。即使 Student 沒有重寫 toString 方法,依然可以調(diào)用,而且結(jié)果和重寫了 toString 方法一樣。

當項目很龐大的時候,往往基礎(chǔ)的 Bean 也非常多。建議看到這篇文章的你可以在項目中把 LomBok 用起來。

最后奉上 項目完整代碼

后語

以上就是我對 LomBok 插件的理解與使用,希望對你們有幫助。最后,對 Python 、Java 感興趣請長按二維碼關(guān)注一波,我會努力帶給你們價值,如果覺得本文對你哪怕有一丁點幫助,請幫忙點好看,讓更多人知道。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73207.html

相關(guān)文章

  • SpringBoot優(yōu)雅編碼之:Lombok加持

    摘要:概述通過提供簡單的語法注解形式來幫助簡化消除一些必須有但顯得很臃腫的代碼。作用在方法參數(shù)上的注解,用于自動生成空值參數(shù)檢查自動幫我們調(diào)用方法。 showImg(https://segmentfault.com/img/remote/1460000014247343); 概述 Lombok 通過提供簡單的語法注解形式來幫助簡化消除一些必須有但顯得很臃腫的 java 代碼。典型的是對于 ...

    olle 評論0 收藏0
  • SpringBoot 實戰(zhàn) (十) | 聲明式事務(wù)

    摘要:前言如題,今天介紹的聲明式事務(wù)。提供一個注解在配置類上來開啟聲明式事務(wù)的支持。而在配置里還開啟了對聲明式事務(wù)的支持,代碼如下所以在中,無須顯式開啟使用注解。源碼下載后語以上為聲明式事務(wù)的教程。 微信公眾號:一個優(yōu)秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天介紹 SpringBoot 的 聲明式事務(wù)。 Spring 的事務(wù)機制 所有的數(shù)據(jù)訪問技術(shù)都有事務(wù)處...

    ygyooo 評論0 收藏0
  • SpringBoot 實戰(zhàn) (九) | 整合 Mybatis

    摘要:提供映射標簽,支持對象與數(shù)據(jù)庫的字段關(guān)系映射提供對象關(guān)系映射標簽,支持對象關(guān)系組建維護提供標簽,支持編寫動態(tài)。層實現(xiàn)類添加更新刪除根據(jù)查詢查詢所有的層構(gòu)建測試結(jié)果其他接口已通過測試,無問題。 微信公眾號:一個優(yōu)秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天介紹 SpringBoot 與 Mybatis 的整合以及 Mybatis 的使用,本文通過注解的形式...

    felix0913 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<