激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Spring Boot中l(wèi)ombok的安裝與使用詳解

Spring Boot中l(wèi)ombok的安裝與使用詳解

2021-01-04 16:16blueheart20 Java教程

這篇文章主要給大家介紹了關(guān)于Spring Boot中l(wèi)ombok安裝與使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

眾所周知spring boot是非常高效的開(kāi)發(fā)框架,lombok是一套代碼模板解決方案,將極大提升開(kāi)發(fā)的效率,這里介紹給大家使用。文中詳細(xì)介紹了lombok的安裝與使用教程,話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

1. lombok

lombok想要解決了的是在我們實(shí)體bean中大量的getter/setter方法,以及tostring, hashcode等可能不會(huì)用到,但是某些時(shí)候仍然需要復(fù)寫,以期方便使用的方法;在使用lombok之后,將由其來(lái)自動(dòng)幫你實(shí)現(xiàn)代碼生成,注意,其是在運(yùn)行過(guò)程中,幫你自動(dòng)生成的。就是說(shuō),將極大減少你的代碼總量。

lombok的官方地址:https://projectlombok.org/

2. lombok的安裝

在springboot1.4.1項(xiàng)目的pom.xml中新增如下信息:

?
1
2
3
4
<dependency>
    <groupid>org.projectlombok</groupid>
    <artifactid>lombok</artifactid>
</dependency>

注意:這里無(wú)需指定版本,因?yàn)閟pring boot中已經(jīng)默認(rèn)引入了這個(gè)類庫(kù),且指定了其scope。 這個(gè)即將lombok引入了項(xiàng)目,可以引用其類庫(kù)標(biāo)注。

針對(duì)不同的ide,lombok提供了不同的解決方案,筆者使用的是sts,故這介紹一下如何使用lombok插件在sts中:
  >> 1.  下載最新的lombok,最新版本。1.16.10 https://projectlombok.org/download.html

  >> 2.  切到lombok下載的目錄,運(yùn)行命令: java -jar lombok.jar

Spring Boot中l(wèi)ombok的安裝與使用詳解   

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

Spring Boot中l(wèi)ombok的安裝與使用詳解   

大家可以看到,這里的會(huì)使用javaagent的方式寫入sts的啟動(dòng)過(guò)程中。在確定之后,我們切到sts的安裝目錄,驗(yàn)證一下sts.ini文件:

Spring Boot中l(wèi)ombok的安裝與使用詳解      

大家也可以發(fā)現(xiàn),在sts的目錄下,也有l(wèi)ombok.jar文件的存在,整個(gè)安裝過(guò)程即可完成。

3.   lombok的使用

主要是基于標(biāo)注來(lái)進(jìn)行信息的封裝和使用:

       @nonnull:  標(biāo)識(shí)對(duì)象是否為空,為空則拋出異常

       @getter:   自動(dòng)生成getter方法

       @setter:  自動(dòng)生成setter

        @tostring:  覆蓋tostring方法

        @equalsandhashcode: 覆蓋equal和hashcode方法

    @data:  @getter/@setter, @tostring, @equalandhashcode等組合

    @slf4j:  默認(rèn)使用slf4j的日志對(duì)象

4. 使用示例:

示例getter/setter方法以及日志使用:

?
1
2
3
4
5
6
7
8
9
import lombok.data;
import lombok.extern.slf4j.slf4j;
 
@slf4j
@data
public class testbean {
 private string name;
 private int age;
}

測(cè)試用例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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());
 }
}

用例運(yùn)行結(jié)果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
. ____   _   __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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<java.lang.string, java.lang.object>)
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<java.lang.string, java.lang.object>)
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<java.util.map<java.lang.string, java.lang.object>> 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聲明語(yǔ)句, @data不必在使用getter/setter方法,其中tostring默認(rèn)反射對(duì)象中的所有屬性,非常的好用。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

原文鏈接:http://blog.csdn.net/blueheart20/article/details/52909775

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久人人爽人人爽人人片av高请 | 欧美a一 | 久久狠狠高潮亚洲精品 | 亚洲欧洲av在线 | 欧美伦理一区二区 | 一级做人爱c黑人影片 | 日韩一级免费 | 久久中文字幕在线观看 | 成人黄视频在线观看 | 曰韩毛片 | 神马福利网 | xxxx18韩国护士hd老师 | 天堂成人国产精品一区 | 精品国产91久久久久久浪潮蜜月 | 国色天香综合网 | 国产麻豆交换夫妇 | 久综合色 | 成人毛片网站 | 黄色羞羞 | 中文字幕在线视频日本 | 深夜福利视频免费观看 | 国产午夜小视频 | 中文字幕极速在线观看 | 欧美人的天堂一区二区三区 | 久久草在线视频 | 日韩精品久久久久久久九岛 | 依人九九 | 高清国产午夜精品久久久久久 | 国产一区二区三区视频在线观看 | 91精品久久久久久久 | 日本最新免费二区三区 | 黄色片一区二区 | 特级毛片免费视频 | 欧美视频一区二区三区四区 | 污片在线观看视频 | 色诱亚洲精品久久久久久 | 日日噜噜噜噜久久久精品毛片 | 国产精品视频二区不卡 | 日本最新免费二区三区 | 国产女做a爱免费视频 | 国产青草视频在线观看视频 |