日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

sts引入lombok_Spring Boot中lombok的安装与使用详解

發布時間:2025/4/5 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sts引入lombok_Spring Boot中lombok的安装与使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

眾所周知Spring Boot是非常高效的開發框架,lombok是一套代碼模板解決方案,將極大提升開發的效率,這里介紹給大家使用。文中詳細介紹了lombok的安裝與使用教程,話不多說了,來一起看看詳細的介紹吧。

1. Lombok

Lombok想要解決了的是在我們實體Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不會用到,但是某些時候仍然需要復寫,以期方便使用的方法;在使用Lombok之后,將由其來自動幫你實現代碼生成,注意,其是在運行過程中,幫你自動生成的。就是說,將極大減少你的代碼總量。

2. LomBok的安裝

在SpringBoot1.4.1項目的pom.xml中新增如下信息:

org.projectlombok

lombok

注意:這里無需指定版本,因為Spring Boot中已經默認引入了這個類庫,且指定了其scope。 這個即將lombok引入了項目,可以引用其類庫標注。

針對不同的IDE,lombok提供了不同的解決方案,筆者使用的是STS,故這介紹一下如何使用lombok插件在STS中:

>> 1.? 下載最新的lombok,最新版本。1.16.10? https://projectlombok.org/download.html

>> 2.? 切到lombok下載的目錄,運行命令: java -jar lombok.jar

選中目錄之后,就會看到如下窗口:

大家可以看到,這里的會使用javaagent的方式寫入STS的啟動過程中。在確定之后,我們切到sts的安裝目錄,驗證一下STS.ini文件:

大家也可以發現,在STS的目錄下,也有lombok.jar文件的存在,整個安裝過程即可完成。

3.?? Lombok的使用

主要是基于標注來進行信息的封裝和使用:

@NonNull:? 標識對象是否為空,為空則拋出異常

@Getter:?? 自動生成Getter方法

@Setter:? 自動生成Setter

@ToString:? 覆蓋tostring方法

@EqualsAndHashCode: 覆蓋equal和hashCode方法

@Data:? @Getter/@Setter, @ToString, @EqualAndHashCode等組合

@Slf4j:? 默認使用slf4j的日志對象

4. 使用示例:

示例Getter/Setter方法以及日志使用:

import lombok.Data;

import lombok.extern.slf4j.Slf4j;

@Slf4j

@Data

public class TestBean {

private String name;

private int age;

}

測試用例:

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import lombok.extern.slf4j.Slf4j;

@RunWith(SpringRunner.class)

@SpringBootTest

@Slf4j

public class TestEntityBean {

TestBean bean = new TestBean();

@Autowired

private MyCase mycase;

//@Test

public void test() {

bean.setAge(123);

bean.setName("zhangsan");

log.info(bean.toString());

}

}

用例運行結果

. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v1.4.1.RELEASE)

2016-10-24 11:49:19.521 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : Starting TestEntityBean on 08-201412015324 with PID 700 (started by junfengchen in D:\Dev\workspace\JSPDemo)

2016-10-24 11:49:19.523 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : No active profile set, falling back to default profiles: default

2016-10-24 11:49:19.647 INFO 700 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

2016-10-24 11:49:22.191 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

2016-10-24 11:49:22.290 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/foo]}" onto public java.lang.String org.cuckoo.report.brain.WelcomeController.foo(java.util.Map)

2016-10-24 11:49:22.293 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[GET]}" onto public java.lang.String org.cuckoo.report.brain.WelcomeController.welcome(java.util.Map)

2016-10-24 11:49:22.295 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)

2016-10-24 11:49:22.296 INFO 700 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

2016-10-24 11:49:22.351 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.351 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.409 INFO 700 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

2016-10-24 11:49:22.642 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : Started TestEntityBean in 3.868 seconds (JVM running for 4.854)

2016-10-24 11:49:22.676 INFO 700 --- [ main] org.cuckoo.report.brain.TestEntityBean : TestBean(name=zhangsan, age=123)

2016-10-24 11:49:22.691 INFO 700 --- [ Thread-2] o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext@4f80542f: startup date [Mon Oct 24 11:49:19 CST 2016]; root of context hierarchy

大家可以注意到@Slf4j替代掉了冗余的logger聲明語句, @Data不必在使用Getter/Setter方法,其中toString默認反射對象中的所有屬性,非常的好用。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

總結

以上是生活随笔為你收集整理的sts引入lombok_Spring Boot中lombok的安装与使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。