この記事では、Springbootのエレガントなコード化されたLombokの祝福を紹介し、次のようにあなたと共有しています。
概要
Lombokは、単純な構文アノテーションを提供することで膨満感があるように見えるが、膨張しているように見えるいくつかのJavaコードの排除を簡素化するのに役立ちます。通常、Lombokのサポートにより、Pojoオブジェクトの単純化(セッターやゲッターを自動的に生成し、ゲッターを自動的に生成するなど)は、多くの反復的および肥大化した操作を回避でき、Javaコードの信号対雑音比を大幅に改善することができます。
Intellijアイデアに関する構成
方法1:Ideaインターフェイスで直接構成します
最初にプラグインインターフェイスを入力します。
次に、Lombokプラグインを検索してインストールします。
最後に、注釈プロセッサの有効なオプションを有効にすることを忘れないでください。
上記のインストールが完了したら、有効にするためにアイデアを再起動する必要があります!
方法2:Lombokプラグインのインストールを手動でダウンロードします
ネットワークの理由により、上記の方法がインストールに失敗する場合があるため、手動でダウンロードしてインストールすることしかできません。
Lombokプラグインをダウンロードしてください:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
プラグイン - >ディスクからプラグインをインストール...ダウンロードしたzipパッケージのインストールを選択します
アイデアを再起動するだけです
IDEの設定が完了したら、POM.xmlに次のLombok依存関係を追加して使用する必要があります。
<Dependency> GroupId> org.ProjectLombok </groupId> <Artifactid> lombok </artifactid> <バージョン> 1.16.16 </version> </dependency>
ロンボクのメインノート
@Getter and @Setter /自動的にセットを提供し、プロパティのメソッドを取得します@ToString /この注釈の関数は、クラスのtoString()メソッドを自動的に生成することです@EqualsAndHashCode /自動的にハッシュコードを生成し、オブジェクトフィールドの実装に等しい@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor /名前が示すように、クラスに対応するパラメーターを持つコンストラクターを自動的に生成します@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog /自動的に対応するログサポートをクラスに追加します@Data / @ToString、@EqualsAndHashCode、@getter、@setter、@RequiredargSconstructorを非ファイナルフィールドに自動的に追加します。これは、いくつかの注釈の包括的な効果と本質的に同等です。@NonNull /自動的にヌルポインターを避けるのに役立ちます。メソッドパラメーターに作用する注釈は、nullパラメーターチェックを自動的に生成するために使用されます@Cleanup / Close()メソッドを自動的に呼び出します。ローカル変数に作用します。スコープが終了すると、リソースをリリースするために閉じるメソッドが自動的に呼び出されます。 Lombokで最も頻繁に使用される@Dataと@Logアノテーションとの実用的なコードバトルです!
@Data Annotationの使用
@Dataアノテーションに関する公式ウェブサイトの説明は次のとおりです。
今すぐ一緒に:@ToStringのショートカット、 @equalsandhashcode、すべてのフィールドの@getter、すべての非ファイナルフィールドの@setter、 @requiredargsconstructor!
理解するのは難しくありません。複数のLombokアノテーションの統合と見なすことができるため、使用するのは非常に便利です!
まず、Pojo Entity userlombokを作成します。一般的な執筆方法は次のとおりです。
Public Class userlombok {private final string name;プライベートインクエイジ;プライベートダブルスコア。プライベート文字列[]タグ; public userlombok(string name){this.name = name; } public string getname(){return this.name; } void Setage(int age){this.age = age; } public int getage(){return this.age; } public void setScore(double score){this.score = score; } public double getScore(){return this.score; } public string [] gettags(){return this.tags; } public void settags(string [] tags){this.tags = tags; } @Override public String toString(){return "dataExample(" + this.getName() + "、" + this.getage() + "、" + this.getScore() + "、" + arrays.deeptoString(this.getTags()) + ")"; }保護されたboolean canequal(object otfern){data exampleの他のインスタンスを返す; } @Override public boolean equals(object o){if(o == this)return true; if(!(o instanceof dataexample))falseを返します。 dataExample other =(dataExample)o; if(!o.canequal((object)this))return false; if(this.getname()== null?other.getname()!= null:!this.getname()。equals(other.getname()))return false; if(this.getage()!= other.getage())return false; if(double.compare(this.getScore()、other.getScore())!= 0)return false; if(!arrays.deepequals(this.gettags()、other.gettags()))falseを返します。 trueを返します。 } @Override public int hashcode(){final int prime = 59; int result = 1;最終的な長いtemp1 = double.doubletolongbits(this.getScore()); result =(result*prime) +(this.getName()== null?43:this.getName()。hashcode()); result =(result*prime) + this.getage(); result =(result*prime) +(int)(temp1 ^(temp1 >>> 32)); result =(result*prime) + arrays.deephashcode(this.getTags());返品結果; }}ロンボクの祝福の後、執筆方法は次のことを簡素化できます。
@datapublic class userlombok {private final string name;プライベートインクエイジ;プライベートダブルスコア。プライベート文字列[]タグ;}IDEAで使用される場合、次の図に示すように、Lombokの注釈は自動的に完了します。
Pojoテストコードを書きましょう
public static void main(string [] args){userlombok userlombok = new userlombok( "hansonwang99"); userlombok.setage(18); string [] array = new String [] {"Apple"、 "Juice"}; userlombok.settags(array); userlombok.setscore(99.0); System.out.println(userlombok); }以下の図から、アイデアはロンボクによって自動的に生成されたコードを自動的に完了することができることがわかります。
結果印刷
Lombokは私たちのためにToString法を自動的に生成するため、オブジェクトの印刷結果は次のとおりです。
userlombok(name = hansonwang99、age = 18、score = 99.0、tags = [Apple、Juice]))
@logアノテーションプラクティス
私の記事では、Spring Boot Log Frameworkの練習では、log4j2をログオブジェクトとして使用します。これは次のように記述されています。
@retscontroller@requestMapping( "/testlogging")public class loggingtestcontroller {private final logger logger = logmanager.getLogger(this.getClass()); @getMapping( "/hello")public string hello(){for(int i = 0; i <10_0000; i ++){logger.info( "info execute indexメソッド"); logger.warn( "execute indexメソッド"を警告); logger.error( "エラー実行インデックスメソッド"); }「私の最初のスプリングブートアプリケーション」を返します。 }}代わりにLombokを使用すると、ライティング方法がより簡潔になります。対応する@logアノテーションを導入して、ログオブジェクトの生成を完了するだけでいいのです。
@retycontroller@requestMapping( "/testloggingwithlombok")@log4j2public class loggingtestcontrollerlombok {@getmapping( "/hello")public string hello(){for(int i = 0; i <10_0000; i ++){log.info( "info execut index method"); log.warn( "execute indexメソッド"); log.Error( "エラー実行インデックスメソッド"); }「私の最初のスプリングブートアプリケーション」を返します。 }}それはどうですか、すべてがとてもエレガントです!
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。