亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

DandJ / 2225人閱讀

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

微信公眾號(hào):一個(gè)優(yōu)秀的廢人
如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。
前言

上周去了開(kāi)年會(huì),去的地方是溫泉度假村。老實(shí)說(shuō),我是無(wú)感的,90% 是因?yàn)闆](méi)中獎(jiǎng)(老板太摳,兩百人只抽三個(gè)獎(jiǎng)),10 % 是因?yàn)閺男∨轀厝L(zhǎng)大沒(méi)啥感覺(jué)。

LomBok 是什么?

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

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

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

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

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

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

代碼演示

新建 SpringBoot 項(xiàng)目,不會(huì)構(gòu)建的看這篇文章 使用 IDEA 構(gòu)建 Spring Boot 工程 ,構(gòu)建時(shí)勾選 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
            
        
    

新建一個(gè) 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 //自動(dòng)生成set/get方法,toString方法,equals方法,hashCode方法,不帶參數(shù)的構(gòu)造方法 @AllArgsConstructor //自動(dòng)生成構(gòu)造方法 @NoArgsConstructor //自動(dòng)生成構(gòu)造方法 public class Student { private String id; private String name; private int age; }

新建一個(gè) StudentNoLombok 類,這是沒(méi)有使用 lombok 的類(此類在項(xiàng)目中無(wú)用處,只為與使用 Lombok 的類對(duì)比,突出使用 LomBok 類代碼的簡(jiǎn)潔),代碼如下:

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 + "}"; } }

從上面兩個(gè)類對(duì)比可以看出,使用 LomBok 插件的類比不使用簡(jiǎn)潔美觀得多。

新建 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("陳志遠(yuǎn)"); System.out.println(student.toString()); return student; } }

啟動(dòng)項(xiàng)目,訪問(wèn)地址 http://localhost:8080/student/testLombok 瀏覽器輸出如下:

控制臺(tái)輸出如下:

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

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

最后奉上 項(xiàng)目完整代碼

后語(yǔ)

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/73207.html

相關(guān)文章

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

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

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

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

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

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

    felix0913 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<