マイクロチャンネル公共番号:良い大破
ご質問やご提案は、私はあなたの問題を解決しようとすると、メッセージのバックを残してください。
序文
先週は、年次総会に、リゾート&スパは、行く場所です行ってきました。正直なところ、私は90%が勝てなかったので、(あまりにもけち上司を、200人が唯一の3つの賞を吸う)、何の意味午前、10%が子供の頃から温泉に起因して、何も感じなかっ育ちました。
何ロンボクこと?
ロンボクは、プラグインであるが、それは、コードの重複がこのような方法セッターとして注釈、ゲッター、クラスのコンストラクタを通して私たちを助けるために書かなければなりません排除することができます。
プロジェクト開発のシナリオを想像してみて、私たちは多くの場合、データベース・エンティティまたは特定のツール豆、豆のあらゆるニーズを大量に定義する必要があり、私たちの書き込みゲッター、セッターメソッド、コンストラクタおよびtoStringメソッドへ。これは非常に退屈なプロセスです。プログラマのガイドラインでは、我々はそれが自動化させる方法を考えなければならない多くのことを行うために3回繰り返します。今日はあなたに高速なハードウェアのプラグインを導入するので、「ロンボクを。」
ロンボク共通のコメントプロフィール
@Data:注解在类上,将类提供的所有属性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法
@Setter:注解在类上,为所有属性添加set方法、注解在属性上为该属性提供set方法
@Getter:注解在类上,为所有的属性添加get方法、注解在属性上为该属性提供get方法
@NotNull:在参数中使用时,如果调用时传了null值,就会抛出空指针异常
@Synchronized 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定
@Log作用于类,创建一个log属性
@Builder:使用builder模式创建对象
@NoArgsConstructor:创建一个无参构造函数
@AllArgsConstructor:创建一个全参构造函数
@ToStirng:创建一个toString方法
@Accessors(chain = true)使用链式设置属性,set方法返回的是this对象。
@RequiredArgsConstructor:创建对象
@UtilityClass:工具类
@ExtensionMethod:设置父类
@FieldDefaults:设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰。
@Cleanup: 关闭流、连接点。
@EqualsAndHashCode:重写equals和hashcode方法。
@toString:创建toString方法。
インストール方法?
1、直接からhttp://plugins.jetbrains.com/ダウンロードして、以下のIDEAプラグインにファイルをインストールし、IDEAを再起動します。
2、IDEAの設定(Windows)または設定(Mac)に、以下に示すように、[参照リポジトリをクリックし、プラグインのメニューを探します
第2段階の検索ロンボクはIDEAを再起動する(私はここにインストールされていますが、更新ボタンを示して更新しました)[インストール]をクリックします。
コードは示してい
新SpringBootプロジェクトこの記事を読んで構築しません春ブーツを構築するためのIDEAプロジェクトを使用してウェブをチェックするには、ビルドの依存関係やロンボクを頼って、完全なポンポンは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nasus</groupId>
<artifactId>lombok</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>lombok</name>
<description>lombok_demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
学生は次のように使用ロンボククラスコードで新しいカテゴリ:
package com.nasus.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Project Name:springboot_lomnok_demo <br/>
* Package Name:com.nasus.entity <br/>
* Date:2019/1/23 0023 14:32 <br/>
* <b>Description:</b> TODO: 描述该类的作用 <br/>
*
* @author <a href="mailto:[email protected]">chenzy</a><br/>
* 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方法,不带参数的构造方法
@AllArgsConstructor //自动生成构造方法
@NoArgsConstructor //自动生成构造方法
public class Student {
private String id;
private String name;
private int age;
}
StudentNoLombok(単純ロンボククラスコードの使用を強調し、プロジェクト内のそのような無駄、およびのみロンボククラスに使用される比較)ロンボククラスなしで使用される新しいクラスは、次の通り:
package com.nasus.entity;
import java.util.Objects;
/**
* Project Name:springboot_lomnok_demo <br/>
* Package Name:com.nasus.entity <br/>
* Date:2019/1/23 0023 14:34 <br/>
* <b>Description:</b> TODO: 描述该类的作用 <br/>
*
* @author <a href="mailto:[email protected]">chenzy</a><br/>
* 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 +
'}';
}
}
はるかにシンプルな外観を使用して類似性ロンボクウィジェットを使用して、上記二つのカテゴリーの比較から分かります。
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 <br/>
* Package Name:com.nasus.controller <br/>
* Date:2019/1/23 0023 14:37 <br/>
* <b>Description:</b> TODO: 描述该类的作用 <br/>
*
* @author <a href="mailto:[email protected]">chenzy</a><br/>
* 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;
}
}
// localhostを:8080 /学生/ testLombokブラウザの出力は次のようプロジェクト、アドレスのhttpへのアクセスを起動します。
次のようにコンソール出力は次のようになります。
上記2つの出力ロンボクプラグ作業から分かります。学生は、toStringメソッドをオーバーライドしていない場合であっても、まだ呼ばれ、結果と同じのtoStringメソッドを書き換えることができます。
プロジェクトは非常に大きい場合、それは非常に多くの場合、ビーンの基本です。私はあなたが彼らとロンボク島へのプロジェクトで見ることができますこの記事をお勧めします。
最後のオファープロジェクト完全なコード
後書き
あなたがここに表示された場合、あなたはこの記事を気に入って、前方に、親指ください。マイクロチャンネルサーチ「良いバスケットケース」、懸念は「返信した後、1024年には、」あなたのJavaチュートリアルの完全なセットを提供します。