欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Jenkins配置Git+Maven的自動化構(gòu)建的方法

 更新時(shí)間:2019年01月22日 11:22:14   作者:徐劉根  
這篇文章主要介紹了使用Jenkins配置Git+Maven的自動化構(gòu)建的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

背景

最近安裝Jenkins,參照網(wǎng)上的各種資料進(jìn)行嘗試,折騰了好久,但是查找了這么多資料,相似度在90%以上?。?!,相同的安裝過程,測試了幾臺機(jī)器,未曾成功,不得不感慨自己能力有限,最終慢慢摸索,形成思路,現(xiàn)分享給大家,希望大家在安裝的時(shí)候少走彎路。

PS:本人很痛恨那種粘貼復(fù)制,毫無思考的博主,本想著拿著解決問題的心態(tài),但結(jié)果還是一樣,不但浪費(fèi)了大家的時(shí)間,還浪費(fèi)了大家的感情,所以,我把我遇到的問題和解決的方式記錄下來和大家分享。

知識背景

首先需要理解的是,Jenkins是幫我們將代碼進(jìn)行統(tǒng)一的編譯打包、還可以放到tomcat容器中進(jìn)行發(fā)布。

意思是我們通過配置,將以前:編譯、打包、上傳、部署到Tomcat中的過程交由Jenkins,Jenkins通過給定的代碼地址URL,將代碼拉取到其“宿主服務(wù)器”(這是我個(gè)人的稱呼,在下邊會用到,就是Jenkins的安裝位置),進(jìn)行編譯、打包和發(fā)布到容器中。

因此我們可以注意到的是,在Jenkins的宿主服務(wù)器中必須要有可以進(jìn)行:代碼clone(Git)、代碼編譯(Maven)、代碼運(yùn)行(Tomcat)的基本環(huán)境,其他文章上來就是安裝jenkins,忽略了一些基本的配置。

下邊就開始講解各部分的安裝過程,如果已經(jīng)安裝某一步的環(huán)境,則可以以此進(jìn)行下一步。

一、Git的安裝

1、安裝依賴

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

注意:perl-ExtUtils-MakeMaker 也是這些安裝列表中的一員,不要因?yàn)轱@示的換行造成大家認(rèn)為是兩條執(zhí)行命令。

2、下載Git

選擇一個(gè)目錄,存放下載的git,例如我的是:/home/xuliugen/tmp,大家可以根據(jù)需求到官網(wǎng)下載相應(yīng)的版本

wget https://github.com/git/git/archive/v2.3.0.zip

3、解壓git

下載之后是這樣的,不要感到奇怪,直接解壓即可

因?yàn)橄螺d的是一個(gè)zip,所以使用命令將其解壓到git目錄下:

#參數(shù)-d 后邊的是解壓到的目錄
unzip v2.3.0 -d git 

4、編譯安裝git

進(jìn)入git目錄

將其安裝在“/usr/local/git”目錄下,命令如下:

make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

5、配置Git

sudo vim /etc/profile #編輯profile文件

然后而已看到這個(gè)文件已經(jīng)有很多配置了,只需要在最下邊添加git的路徑即可:

export PATH=/usr/local/git/bin:$PATH

將這段話放在最后邊,然后使用source命令應(yīng)用修改:

source /etc/profile

6、檢驗(yàn)Git是否安裝成功

git --version

二、Maven安裝

1、下載和解壓Maven

Maven的安裝包下載可以根據(jù)需求找到合適的版本,解壓之后,我的位置是:

2、配置Maven

編輯:~/.bash_profile文件,根據(jù)注釋相應(yīng)的修改即可

# maven所在的目錄 
export M2_HOME=/home/xuliugen/software/maven/apache-maven-3.3.3
# maven bin所在的目錄 
export M2=$M2_HOME/bin
# 將maven bin加到PATH變量中 
export PATH=$M2:$PATH
# 配置JAVA_HOME所在的目錄,注意這個(gè)目錄下應(yīng)該有bin文件夾,bin下應(yīng)該有java等命令 
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0

然后運(yùn)行:source ~/.bash_profile 應(yīng)用修改

3、查看Maven是否安裝成功

使用:mvn -version 即可查看結(jié)果

三、Jenkins的部署

Jenkins的安裝很簡單,直接將war放到容器中進(jìn)行運(yùn)行即可

1、將jenkins放到Tomcat中并解壓,啟動Tomcat,成功啟動之后訪問ip和端口如下:

啟動成功之后,進(jìn)入的界面如上,表示啟動成功。

2、安裝插件

在進(jìn)行配置之前,由于使用的是Git拉去代碼的方式,所以要首先安裝插件

找到:插件管理 在“可選插件”界面使用ctrl+f 搜索:Deploy to container Plugin 插件(這個(gè)是支持將代碼部署到tomcat容器的)

勾選,點(diǎn)擊下邊的按鈕:直接安裝,這個(gè)可能時(shí)間較久,等待即可。

安裝完之后,如果勾選了:安裝完成后重啟jenkins 那么會重啟jenkins。

然后安裝:GIT plugin,何上邊的步驟一樣,如果使用上述的方式,由于網(wǎng)絡(luò)的原因,可能會安裝失敗,這就需要我們使用另一種方式進(jìn)行安裝。

使用同樣的方式在“可選插件”中搜索GIT plugin,找到之后點(diǎn)擊藍(lán)色鏈接(最好右鍵在新窗口中打開,放置覆蓋jenkins界面)

會跳轉(zhuǎn)到Git Plugin的插件信息地址:

可以看到Plugin ID為:git,然后在:http://updates.jenkins-ci.org/download/plugins/ 這地地方搜索(ctrl+f)即可找到,點(diǎn)進(jìn)去,選擇一個(gè)版本進(jìn)行下載:

點(diǎn)進(jìn)去下載的是一個(gè)hpi文件

然后同樣的在:系統(tǒng)管理–管理插件–高級Tab中,下拉可以看到上傳插件,然后選擇文件上傳剛才下載的hpi文件,即可,上傳完之后,會自動安裝。上述安裝Deploy to container Plugin的方式也可以采用這種方式。

都安裝完之后,在已安裝Tab中可以看到剛安裝的插件:

3、進(jìn)行配置

看到上圖中的左側(cè)有一個(gè):系統(tǒng)管理 點(diǎn)擊去

上邊的第一行黃色信息,表示編碼問題,在Tomcat–>conf–>server.xml文件中修改即可

4、Jenkins系統(tǒng)設(shè)置

點(diǎn)擊:系統(tǒng)設(shè)置這里沒有強(qiáng)調(diào)的都設(shè)置為默認(rèn)即可。

(注意:版本2.60.2是在:系統(tǒng)設(shè)置–>Global Tool Configuration下)

(1)JDK,別名是任意的,選擇自己jdk的位置,jenkins推薦使用sun jdk而不是openjdk

(2)Git 的配置

注意這里的git位置,是可執(zhí)行文件的地址,即是git–bin–下的可執(zhí)行文件 git的目錄(類似于java中bin下的java可執(zhí)行文件位置)

如果填錯(cuò),后期回報(bào)無法找到git等錯(cuò)誤(最下邊,其他問題下的第三個(gè)問題),請大家注意!

(3)Ant的配置

由于本次并沒有用到Ant,不做配置,大家可以根據(jù)配置進(jìn)行設(shè)置

(4)Maven的配置,選擇自己maven的存放位置

(5)Jenkins Location

這里配置的是ip加端口和一個(gè)路徑名稱,郵箱要進(jìn)行設(shè)定,后期會發(fā)送jenkins執(zhí)行的結(jié)果到郵件中

(6)郵件通知

這里我配置的QQ郵箱,大家根據(jù)情況進(jìn)行設(shè)置相應(yīng)的smtp服務(wù)器,用戶名、密碼分別為自己的QQ郵箱何密碼,如果不進(jìn)行設(shè)置,后期jenkins構(gòu)建項(xiàng)目的時(shí)候會報(bào)錯(cuò),報(bào)錯(cuò)信息很好理解也很好找到是沒有配置郵件的問題。

首先,要保證郵件的smtp和pop是開啟狀態(tài)的,這樣的話才可以通過驗(yàn)證:

最后點(diǎn)擊下邊的應(yīng)用、保存即可

5、Configure Global Security

然后回到系統(tǒng)管理,看到Configure Global Security 點(diǎn)擊進(jìn)去,根據(jù)下邊進(jìn)行配置即可

點(diǎn)擊應(yīng)用 保存之后,然后在屏幕的右上角,有一個(gè)登錄-注冊 ,點(diǎn)擊注冊即可實(shí)現(xiàn)用戶的登錄。

這里,如果是公司內(nèi)網(wǎng)的話,或者最后搭建的jenkins是公司使用,那么最好用戶名和密碼為公司的賬戶密碼,郵件也是公司的郵件,這樣的話方便后期的操作。

至此Jenkins的基本配置完成。

創(chuàng)建Job

1、創(chuàng)建項(xiàng)目

點(diǎn)擊登錄之后,會看到下邊的界面中:My Views

點(diǎn)擊進(jìn)去

點(diǎn)擊:創(chuàng)建一個(gè)新任務(wù)

選擇maven項(xiàng)目,點(diǎn)擊OK,這里的Item名稱是后邊需要用到的,下邊的配置也有用到這個(gè)的,大家可以很好的對應(yīng)。

2、進(jìn)行項(xiàng)目的配置

(1)源碼管理選擇Git,這個(gè)時(shí)候添加url之后,下邊會報(bào)錯(cuò),顯示讓去認(rèn)證,認(rèn)證即可(其他的安裝中又遇到這個(gè)問題),如果認(rèn)證失敗,請下載認(rèn)證Github Authentication plugin插件,這個(gè)在插件管理的可選插件中搜索安裝。

我這里的rul是我在gitos上的一個(gè)項(xiàng)目,credentials是我在gitos上的用戶名和密碼認(rèn)證。

(2)構(gòu)建觸發(fā)器,就是什么時(shí)候執(zhí)行jenkins的自動化部署

選擇第一個(gè),其他的基本是定時(shí)執(zhí)行什么的,大家可以自行查找,查看如何設(shè)置,根據(jù)需要進(jìn)行配置

(3)Post Steps

選擇上圖中的,然后下邊 的Execute shell如下,腳本的編寫在下邊進(jìn)行了詳細(xì)的說明:

#!/bin/bash 
#copy file and restart tomcat 

export JAVA_HOME=/data/home/server/jdk
export CATALINA_HOME=/home/xuliugen/dubbo-provider
export CATALINA_BASE=/home/xuliugen/dubbo-provider
export BUILD_ID=dontKillMe

tomcat_path=/home/xuliugen/dubbo-provider
project=dubbo-provider
war_name=dubbo-provider.war 
war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 
file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target

$tomcat_path/bin/shutdown.sh 

sleep 3s 

echo "rm -rf ${tomcat_path}/webapps/ROOT/*"

rm -rf ${tomcat_path}/webapps/ROOT/*

cd $file_path

cp ${war_name} ${tomcat_path}/webapps/ROOT/

cd $tomcat_path/webapps/ROOT/

unzip ${war_name}

rm -rf ${war_name}

sleep 5s 

#$tomcat_path/bin/startup.sh

cd $tomcat_path/bin/
./startup.sh

echo "server restarted"

(4)郵件通知

至此基本設(shè)置完畢,點(diǎn)擊應(yīng)用、保存

(5)立即構(gòu)建

點(diǎn)擊左上角的立即構(gòu)建

然后看到下邊的Build History 點(diǎn)擊藍(lán)色的進(jìn)去,會進(jìn)入Console

下邊是進(jìn)行jar的下載,會下載到宿主服務(wù)器的maven倉庫中:

下邊的信息表示項(xiàng)目編譯通過:

下邊是運(yùn)行腳本的信息:

腳本的分析

在Jenkins的服務(wù)器上查看:

可以看到在/root/.jenkins這個(gè)目錄,實(shí)際存放了Jenkins拉取Git代碼之后編譯好war的位置,到此,大家也許都該明白了,編譯后的位置就在這里啊!然后,接著是部署到宿主服務(wù)器的Tomcat容器中,如何將編譯好的war放到tomcat中,這就需要腳本來完成,也是上述過程中配置的過程,下邊對每一行進(jìn)行分析。

首先我們應(yīng)該明白,將編譯好的war放到tomcat容器中,我們首先要知道這兩個(gè)的位置:編譯后war的位置和目標(biāo)容器的位置,很顯然我們是知道的。

1、腳本文件的頭,這個(gè)沒得說

#!/bin/bash 

2、環(huán)境變量設(shè)置

export JAVA_HOME=/data/home/server/jdk
export CATALINA_HOME=/home/xuliugen/dubbo-provider
export CATALINA_BASE=/home/xuliugen/dubbo-provider
export BUILD_ID=dontKillMe

上邊的各個(gè)位置,大家也許都知道,CATALINA_HOME和CATALINA_BASE的位置就是Tomcat容器的位置,這里根據(jù)需求我將Tomcat容器的名字改為dubbo-provider了,如果改成/home/xuliugen/tomcat是不是更好理解。

export BUILD_ID=dontKillMe這一句很重要,因?yàn)樵搄ob啟動完后執(zhí)行下一job,jenkins直接把tomcat進(jìn)程殺了,所以無論腳本中怎么寫了啟動tomcat的命令,他是不會啟動的。雖然上述截圖中顯示了Tomcat started、server restarted但是訪問項(xiàng)目地址是訪問不了的,這在:其他問題的第二個(gè)說明了這個(gè)問題。

3、其他路徑位置

tomcat_path=/home/xuliugen/dubbo-provider #我的Tomcat位置
project=dubbo-provider #我的項(xiàng)目編譯的名稱
war_name=dubbo-provider.war #最后打包的war名稱
war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 #宿主服務(wù)器的ip何端口
file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target #編譯好的war包存放地址

這個(gè):war_path 其實(shí)也就是Jenkins的宿主服務(wù)器位置IP,端口為jenkins運(yùn)行的端口,大家只需要將ip地址端口ManenDemo換成自己的即可;

file_path:就是Jenkins幫我們編譯好的項(xiàng)目war的位置,上圖中大家也可以看到,并且大家不可以完全按照上邊的路徑,要找到自己宿主服務(wù)器上實(shí)際war的位置,進(jìn)行設(shè)置。

4、耳熟能詳?shù)膱?zhí)行命令

下邊就是我們在使用原始方式,部署war的命令,大家很簡單的可以理解,其中:

注意:個(gè)人寫腳本的能力有限,所以我是假設(shè)項(xiàng)目已經(jīng)在運(yùn)行的情況下,因此我上來就是先關(guān)閉Tomcat,(正確的方式,應(yīng)該判斷端口是否打開,如果本身tomcat未啟動,我的這種情況,會在Jenkins的Console中報(bào)拒絕連接的問題,如下圖)。

另外用到了sleep 3s 這個(gè)可以讓線程休眠一下,這樣的話可以看一下tomcat的日志信息。

下邊的腳本就是刪除原來容器中的文件,然后將編譯好的war移動到容器中,解壓。運(yùn)行tomcat。

$tomcat_path/bin/shutdown.sh 
sleep 3s 
echo "rm -rf ${tomcat_path}/webapps/ROOT/*"
rm -rf ${tomcat_path}/webapps/ROOT/*
cd $file_path
cp ${war_name} ${tomcat_path}/webapps/ROOT/
cd $tomcat_path/webapps/ROOT/
unzip ${war_name}
rm -rf ${war_name}
sleep 5s 
cd $tomcat_path/bin/
./startup.sh
echo "server restarted"

將項(xiàng)目布署到遠(yuǎn)程Tomcat

上述創(chuàng)建項(xiàng)目,可以看出是在本地進(jìn)行執(zhí)行的,也就是進(jìn)行編譯后執(zhí)行的Tomcat是何Jenkins的宿主服務(wù)器是在一起的,這很顯然不符合我們常規(guī)的公司及其部署的方案,通常是將編譯之后的代碼在運(yùn)行到其他的Tomcat服務(wù)器中的,下邊有兩種方式,將編譯之后的項(xiàng)目部署到遠(yuǎn)程服務(wù)器中。

1、使用腳本的方式部署到遠(yuǎn)程服務(wù)器

2、使用Deploy to container Plugin插件部署到遠(yuǎn)程服務(wù)器

上述的開始階段就安裝了這個(gè)插件,下邊就開始發(fā)揮其作用。

在創(chuàng)建的Job左側(cè)點(diǎn)擊設(shè)置,其他配置何在遠(yuǎn)程搭建項(xiàng)目是一致的,不同的是在這個(gè)地方:

以前我們在編譯之后,將編譯后的通過腳本補(bǔ)助到Jenkins的宿主服務(wù)器,使用插件,就不需要這種方式了。

還有就是的在構(gòu)建之后,將編譯后的文件**/target/dubbo-provider.war(就是上邊的~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target目錄)部署到下邊的遠(yuǎn)程Tomcat容器中;這里Containers的用戶名和密碼是Tomcat管理員的賬戶密碼,Tomcat URL 就是你需要進(jìn)行部署的遠(yuǎn)程Tomcat服務(wù)器的ip和端口。

這里需要進(jìn)行設(shè)置的是遠(yuǎn)程Tomcat的管理員信息,修改遠(yuǎn)程Tomcat容器下的conf–tomcat-users.xml文件,在內(nèi)添加下邊的內(nèi)容:

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager,manager-script,manager-gui"/>

即可實(shí)現(xiàn)遠(yuǎn)程的訪問,測試是可以通過的,但是有一個(gè)問題,通過這種方式,只將war復(fù)制到了wenapps下:

因此這種方式的話,我們訪問的時(shí)候必須是ip、端口和項(xiàng)目名,例如:

http://115.159.151.247:8030/dubbo-provider/

當(dāng)然這種方式 也是在實(shí)際的應(yīng)用中不提倡的,解決方式就是修改Tomcat默認(rèn)的訪問路徑即可,設(shè)置Tomcat–conf–server.xml文件如下:

在Host節(jié)點(diǎn)之間添加:

<Context path="" docBase="dubbo-provider" debug="0" reloadable="true" />

或者在docBase里邊輸入項(xiàng)目的絕對路徑,例如我的:

<Context path="" docBase="/home/xuliugen/dubbo-provider/webapps/dubbo-provider" debug="0" reloadable="true" />

然后重啟Tomcat,這樣的話,http://ip:8030/dubbo-provider/ 和http://ip:8030這兩種方式都可以訪問到該項(xiàng)目。

后期補(bǔ)充:

上邊的是設(shè)置Context Path,使得默認(rèn)部署的時(shí)候會在webapps下作為一個(gè)單獨(dú)的容器,其實(shí)可以直接將其設(shè)置為/ ,因?yàn)門omcat默認(rèn)的訪問路徑指向的就是ROOT,所以如果設(shè)置為ROOT的話就不需要在進(jìn)行上邊的設(shè)置了,如下:

自動部署war包到ROOT路徑,也就是網(wǎng)站的根目錄時(shí),deploy插件的”Context path”要填寫:”/”,而不是”ROOT”或者”/ROOT”,不然自動部署會失敗,有類似以下錯(cuò)誤:

其他問題

1、部署項(xiàng)目的時(shí)候報(bào)錯(cuò)

這個(gè)大家很好理解,是因?yàn)橄螺djar失敗的問題,由于是第一次使用Maven,需要第一次下載很多jar到Maven倉庫中,由于網(wǎng)絡(luò)的問題下載失敗,大家可以多次構(gòu)建讓他重新下載,或者直接到:https://repo.maven.apache.org/maven2 根據(jù)報(bào)錯(cuò)的jar,在maven2中找到自己缺失的jar,然后在/root/.m2/repository 相應(yīng)的位置添加jar即可。

2、編寫腳本文件啟動tomcat但是項(xiàng)目仍然運(yùn)行不起來

就是上邊說道的問題了:

添加:export BUILD_ID=dontKillMe,因?yàn)樵搄ob啟動完后執(zhí)行下一job,jenkins直接把tomcat進(jìn)程殺了,所以無論腳本中怎么寫了啟動tomcat的命令,他是不會啟動的。

3、遇到下邊的問題

這就是在系統(tǒng)設(shè)置的時(shí)候,設(shè)置的git的地址不對,上述已經(jīng)說明了,應(yīng)該是git的可執(zhí)行文件的地址,如果只是git的目錄,是無法找到git這個(gè)可執(zhí)行文件的,如下:

可以看出使用的是這個(gè):/usr/local/git/bin/git 進(jìn)行g(shù)it倉庫的配置何代碼的拉取,因此這設(shè)置git的目錄,jenkins默認(rèn)是不會找bin目錄下的git可執(zhí)行文件的。

至此,Jenkins的部署完成,希望對大家有所幫助。也希望大家多多支持腳本之家。

相關(guān)文章

  • java之swing表格實(shí)現(xiàn)方法

    java之swing表格實(shí)現(xiàn)方法

    這篇文章主要介紹了java之swing表格實(shí)現(xiàn)方法,以實(shí)例形式分析了swing構(gòu)建表格的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Java深入探索線程安全和線程通信的特性

    Java深入探索線程安全和線程通信的特性

    這篇文章主要介紹了Java線程安全和線程通信的特性,線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會通過同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-05-05
  • java使用GeoTools讀取shp文件并畫圖的操作代碼

    java使用GeoTools讀取shp文件并畫圖的操作代碼

    GeoTools是ArcGis地圖與java對象的橋梁,今天通過本文給大家分享java使用GeoTools讀取shp文件并畫圖,文章通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • Spring Boot應(yīng)用開發(fā)初探與實(shí)例講解

    Spring Boot應(yīng)用開發(fā)初探與實(shí)例講解

    這篇文章主要介紹了Spring Boot應(yīng)用開發(fā)初探與實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java中關(guān)于命令執(zhí)行匯總

    java中關(guān)于命令執(zhí)行匯總

    這篇文章主要介紹了java中關(guān)于命令執(zhí)行匯總,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring Security添加驗(yàn)證碼的兩種方式小結(jié)

    Spring Security添加驗(yàn)證碼的兩種方式小結(jié)

    使用spring security的時(shí)候,框架會幫我們做賬戶密碼的驗(yàn)證,但是如我們需要添加一個(gè)驗(yàn)證碼,就需要對配置文件進(jìn)行修改,這篇文章主要給大家介紹了關(guān)于Spring Security添加驗(yàn)證碼的兩種方式,需要的朋友可以參考下
    2021-10-10
  • Java項(xiàng)目如何防止SQL注入(多種方案匯總)

    Java項(xiàng)目如何防止SQL注入(多種方案匯總)

    SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷或過濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,這篇文章主要介紹了?Java項(xiàng)目防止SQL注入的四種方案,需要的朋友可以參考下
    2023-12-12
  • Java中LambdaQueryWrapper設(shè)置自定義排序代碼示例

    Java中LambdaQueryWrapper設(shè)置自定義排序代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中LambdaQueryWrapper設(shè)置自定義排序的相關(guān)資料,lambdaquerywrapper是MyBatis-Plus框架中的一個(gè)查詢條件構(gòu)造器,它可以用于構(gòu)建自定義的查詢條件,需要的朋友可以參考下
    2023-12-12
  • 詳細(xì)介紹Java關(guān)鍵字throw?throws?Throwable的用法與區(qū)別

    詳細(xì)介紹Java關(guān)鍵字throw?throws?Throwable的用法與區(qū)別

    這篇文章主要介紹了java中throws與throw及Throwable的用法和區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Spring Boot 中的 SockJS原理及使用方法

    Spring Boot 中的 SockJS原理及使用方法

    SockJS 的主要作用是提供一種 WebSocket 的兼容性解決方案,使得不支持 WebSocket 的瀏覽器也可以使用 WebSocket,本文介紹了Spring Boot中的SockJS,包括SockJS的原理,使用方法和示例代碼,感興趣的朋友跟隨小編一起看看吧
    2023-07-07

最新評論