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

java框架之maven是用來做什么的

 更新時間:2020年07月21日 15:52:03   作者:有夢想的老王  
這篇文章主要介紹了java之maven是用來做什么的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

該篇文章篇幅很長,大概的思路如下

        maven的介紹,初步認(rèn)識,獲取jar包的三個關(guān)鍵屬性 --> 介紹倉庫(獲取的jar包從何而來)-->用命令行管理maven項目(創(chuàng)建maven項目) --> 用myeclipse創(chuàng)建maven項目 -->詳細(xì)介紹pom.xml中的依賴關(guān)系(坐標(biāo)獲取、定位jar包的各種屬性講解?!                         ?nbsp;                                                                        

一、簡單的小問題?

    解釋之前,提1個小問題。

   1.1、假如你正在Eclipse下開發(fā)兩個Java項目,姑且把它們稱為A、B,其中A項目中的一些功能依賴于B項目中的某些類,那么如何維系這種依賴關(guān)系的呢?

   很簡單,這不就是跟我們之前寫程序時一樣嗎,需要用哪個項目中的哪些類,也就是用別人寫好了的功能代碼,導(dǎo)入jar包即可。所以這里也如此,可以將B項目打成jar包,然后在A項目的Library下導(dǎo)入B的jar文件,這樣,A項目就可以調(diào)用B項目中的某些類了。

    這樣做幾種缺陷

  如果在開發(fā)過程中,發(fā)現(xiàn)B中的bug,則必須將B項目修改好,并重新將B打包并對A項目進(jìn)行重編譯操作

  在完成A項目的開發(fā)后,為了保證A的正常運行,就需要依賴B(就像在使用某個jar包時必須依賴另外一個jar一樣),兩種解決方案,第一種,選擇將B打包入A中,第二種,將B也發(fā)布出去,等別人需要用A時,告訴開發(fā)者,想要用A就必須在導(dǎo)入Bjar包。兩個都很麻煩,前者可能造成資源的浪費(比如,開發(fā)者可能正在開發(fā)依賴B的其它項目,B已經(jīng)存儲到本地了,在導(dǎo)入A的jar包的話,就有了兩個B的jar),后者是我們常遇到的,找各種jar包,非常麻煩(有了maven就不一樣了)

  1.2、我們開發(fā)一個項目,或者做一個小demo,比如用SSH框架,那么我們就必須將SSH框架所用的幾十個依賴的jar包依次找出來并手動導(dǎo)入,超級繁瑣。 

 上面兩個問題的描述,其實都屬于項目與項目之間依賴的問題[A項目使用SSH的所有jar,就說A項目依賴SSH],人為手動的去解決,很繁瑣,也不方便,所以使用maven來幫我們管理

二、maven到底是什么?

 Maven是基于項目對象模型(POM project object model),可以通過一小段描述信息(配置)來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具[百度百科]

 這種又是大白話,如果沒明白maven是什么,那么上面這句話跟沒說一樣,我自己覺得,Maven的核心功能便是合理敘述項目間的依賴關(guān)系,通俗點講,就是通過pom.xml文件的配置獲取jar包,而不用手動去添加jar包,而這里pom.xml文件對于學(xué)了一點maven的人來說,就有些熟悉了,怎么通過pom.xml的配置就可以獲取到j(luò)ar包呢?pom.xml配置文件從何而來?等等類似問題我們需要搞清楚,如果需要使用pom.xml來獲取jar包,那么首先該項目就必須為maven項目,maven項目可以這樣去想,就是在java項目和web項目的上面包裹了一層maven,本質(zhì)上java項目還是java項目,web項目還是web項目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通過pom.xml添加jar包)。

  所以,根據(jù)上一段的描述,我們最終的目的就是學(xué)會如何在pom.xml中配置獲取到我們想要的jar包,在此之前我們就必須了解如何創(chuàng)建maven項目,maven項目的結(jié)構(gòu)是怎樣,與普通java,web項目的區(qū)別在哪里,還有如何配置pom.xml獲取到對應(yīng)的jar包等等,這里提前了解一下我們?nèi)绾瓮ㄟ^pom.xml文件獲取到想要的jar的,具體后面會詳細(xì)講解該配置文件。

pom.xml獲取junit的jar包的編寫。

  為什么通過groupId、artifactId、version三個屬性就能定位一個jar包?

 加入上面的pom.xml文件屬于A項目,那么A項目肯定是一個maven項目,通過上面這三個屬性能夠找到j(luò)unit對應(yīng)版本的jar包,那么junit項目肯定也是一個maven項目,junit的maven項目中的pom.xml文件就會有三個標(biāo)識符,比如像下圖這樣,然后別的maven項目就能通過這三個屬性來找到j(luò)unit項目的jar包了。所以,在每個創(chuàng)建的maven項目時都會要求寫上這三個屬性值的。

            

三、maven的安裝

     這一步maven環(huán)境的配置,我覺得有必要安裝一下,目的為了使用命令行創(chuàng)建maven項目,和使用命令行操作maven項目。這里不細(xì)講,給出鏈接,跟安裝jdk環(huán)境類似,maven的安裝教程和配置

還有注意,我以下用的是maven3.0.4版本(比較低的),你們可以下載最新的版本,最好是使用jdk1.7.

四、倉庫的概念

  通過pom.xml中的配置,就能夠獲取到想要的jar包(還沒講解如何配置先需要了解一下倉庫的概念),但是這些jar是在哪里呢?就是我們從哪里獲取到的這些jar包?答案就是倉庫。

  倉庫分為:本地倉庫、第三方倉庫(私服)、中央倉庫

4.1、本地倉庫

  Maven會將工程中依賴的構(gòu)件(Jar包)從遠(yuǎn)程下載到本機(jī)一個目錄下管理,每個電腦默認(rèn)的倉庫是在 $user.home/.m2/repository下

例如我的就在:C:\Users\Administrator\.m2\repository

 般我們會修改本地倉庫位置,自己創(chuàng)建一個文件夾,在從網(wǎng)上下載一個擁有相對完整的所有jar包的結(jié)合,都丟到本地倉庫中,然后每次寫項目,直接從本地倉庫里拿就行了

  

這里面有很多各種各樣我們需要的jar包。

  修改本地庫位置:在$MAVEN_HOME/conf/setting.xml文件中修改,

 

 

 D:\java\maven\repository:就是我們自己創(chuàng)建的本地倉庫,將網(wǎng)上下載的所有jar包,都丟到該目錄下,我們就可以直接通過maven的pom.xml文件直接拿。

4.2、第三方倉庫

 第三方倉庫,又稱為內(nèi)部中心倉庫,也稱為私服

  私服:一般是由公司自己設(shè)立的,只為本公司內(nèi)部共享使用。它既可以作為公司內(nèi)部構(gòu)件協(xié)作和存檔,也可作為公用類庫鏡像緩存,減少在外部訪問和下載的頻率。(使用私服為了減少對中央倉庫的訪問

  私服可以使用的是局域網(wǎng),中央倉庫必須使用外網(wǎng)

 也就是一般公司都會創(chuàng)建這種第三方倉庫,保證項目開發(fā)時,項目所需用的jar都從該倉庫中拿,每個人的版本就都一樣。

  注意:連接私服,需要單獨配置。如果沒有配置私服,默認(rèn)不使用

4.3、中央倉庫

 Maven內(nèi)置了遠(yuǎn)程公用倉庫:http://repo1.maven.org/maven2

 這個公共倉庫是由Maven自己維護(hù),里面有大量的常用類庫,并包含了世界上大部分流行的開源項目構(gòu)件。目前是以java為主

工程依賴的jar包如果本地倉庫沒有,默認(rèn)從中央倉庫下載

總結(jié):獲取jar包的過程

五、使用命令行管理maven項目

5.1、創(chuàng)建maven java項目

 自己創(chuàng)建一個文件夾,在該文件夾下按shift+右擊,點開使用命令行模式,這樣創(chuàng)建的maven[java]項目就在該文件夾下了。

 命令:

mvn archetype:create -DgroupId=com.wuhao.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart

  mvn:核心命令

 archetype:create:創(chuàng)建項目,現(xiàn)在maven高一點的版本都棄用了create命令而使用generate命令了。

 -DgroupId=com.wuhao.maven.quickstart :創(chuàng)建該maven項目時的groupId是什么,該作用在上面已經(jīng)解釋了。一般使用包名的寫法。因為包名是用公司的域名的反寫,獨一無二

 -DartifactId=simple:創(chuàng)建該maven項目時的artifactId是什么,就是項目名稱

  -DarchetypeArtifactId=maven-archetype-quickstart:表示創(chuàng)建的是[maven]java項目

 運行的前提:需要聯(lián)網(wǎng),必須上網(wǎng)下載一個小文件

 運行成功后

  

 在D:\java\maven\demo下就會生成一個simple的文件,該文件就是我們的maven java項目

 5.2、maven java項目結(jié)構(gòu)

 simple
---pom.xml    核心配置,項目根下
---src
---main      
 ---java    java源碼目錄
 ---resources  java配置文件目錄
---test
---java    測試源碼目錄
---resources  測試配置目錄

  

 圖中有一個target目錄,是因為將該java項目進(jìn)行了編譯,src/main/java下的源代碼就會編譯成.class文件放入target目錄中,target就是輸出目錄。

 5.3、創(chuàng)建 maven web 項目

   命令:

mvn archetype:create -DgroupId=com.wuhao.maven.quickstart -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot

  其他都差不多,創(chuàng)建maven web項目的話 -DarchetypeArtifactId=maven-archetype-webapp 比創(chuàng)建java項目多了一個 -Dversion=0.01-snapshot, 在創(chuàng)建java項目的時候也可以加上這個,如果不寫,會默認(rèn)幫我們加上1.0-snapshot。

 在D:\java\maven\demo下就會生成一個myWebApp的文件 

    

5.4、maven web項目結(jié)構(gòu)

          pom.xml 核心配置
          src/main/java java源碼
          src/main/resources java配置
          src/main/webapp myeclipse web項目中 WebRoot目錄
            |-- WEB-INF
            |-- web.xml
          src/test 測試
          target 輸出目錄

5.5、命令操作maven java或web項目

  編譯:mvn compile  --src/main/java目錄java源碼編譯生成class (target目錄下)

  測試:mvn test    --src/test/java 目錄編譯

  清理:mvn clean    --刪除target目錄,也就是將class文件等刪除

  打包:mvn package  --生成壓縮文件:java項目#jar包;web項目#war包,也是放在target目錄下

  安裝:mvn install   --將壓縮文件(jar或者war)上傳到本地倉庫

 部署|發(fā)布:mvn deploy  --將壓縮文件上傳私服

5.6、例子:使用命令操作maven java項目

注意:使用命令時,必須在maven java項目的根目錄下,及可以看到pom.xml

  描述:將maven java項目打包上傳到本地倉庫供別人調(diào)用

  使用 mvn install

   在本地倉庫中查看是否有該項目

  D:\java\maven\repository\com\wuhao\maven\quickstart\simple\1.0-SNAPSHOT

   通過在本地倉庫中的目錄可以發(fā)現(xiàn)為什么通過groupId、artifactId、version可以定位到倉庫中得jar包,也可以知道為什么groupId要使用公司域名的反寫(因為這樣唯一,不會與別的項目重名導(dǎo)致查找到的內(nèi)容不精確)

 5.7、maven項目的完整生命周期,當(dāng)執(zhí)行生命周期后面命令時,前面步驟的命令自動執(zhí)行

        

 紅色標(biāo)記字體的意思就是當(dāng)我們直接使用mvn install命令對項目進(jìn)行上傳至本地倉庫時,那么前面所有的步驟將會自動執(zhí)行,比如源代碼的編譯,打包等等。

 5.8、其他命令

          maven java或web項目轉(zhuǎn)換Eclipse工程

             mvn eclipse:eclipse

             mvn eclipse:clean  清楚eclipse設(shè)置信息,又從eclipse工程轉(zhuǎn)換為maven原生項目了    

          ...轉(zhuǎn)換IDEA工程

             mvn idea:idea

             mvn idea:clean  同上 

六、使用Myeclipse創(chuàng)建maven自定義項目

    使用myeclpse創(chuàng)建項目前,需要在myeclipse中配置maven的一些信息

      比如:配置本地倉庫、安裝自定義maven(myeclipse中高版本自帶了maven)等,這里省略。

 6.1、java項目

1、選擇maven project,如果右鍵新建沒有,通過other獲得 

2、創(chuàng)建一個簡單項目(跳過骨架選擇)

3、設(shè)置項目參數(shù),創(chuàng)建java項目

     

4、創(chuàng)建java項目結(jié)果

       

6.2、創(chuàng)建maven web項目

  1、同上

     2、同上

     3、設(shè)置項目參數(shù),其他一樣,選擇打包方式不一樣。

  4、創(chuàng)建web項目結(jié)果

 5、可能報錯1:pom.xml報錯

結(jié)果如下

     

然后需要更新一下項目,就不報錯了。

  6、報錯2,編寫jsp時報錯

     

錯誤信息為缺少serlvet-jar和jsp-jar包

  

 解決:使用pom.xml定位導(dǎo)入相應(yīng)的jar包

    

  找到j(luò)sp-jar包,scope的作用是表示該jar包的作用范圍,provided表示在編譯和測試期有效,在運行期則無效。具體后面講解pom.xml時會講解到?!    ?/p>

 

 找到servle-jar包

 pom.xml中檢查,修改

 修改完后,發(fā)現(xiàn)兩個jar包都加載進(jìn)來了,項目完好,不在報錯了。

 

 6.3、創(chuàng)建maven項目

 都一樣,在項目參數(shù)那里修改即可

 結(jié)果

 maven項目一般沒用,在開發(fā)中將一個項目拆分成多個項,就需要使用maven項目(pom項目)將其他子項目進(jìn)行整合,下一章節(jié)講解,很重要。很重要。

6.4、myeclipse maven操作

6--9 都是快捷方式

9 測試,相當(dāng)于命令行 mvn test

8 安裝,相當(dāng)于命令行 mvn install 作用:將其上傳到本地倉庫,具體見上面講解

7 關(guān)聯(lián)源碼,這個不需要解釋吧,平常我們使用別的jar包也關(guān)聯(lián)過源碼

6 清理,mvn clean

5 maven bulid  執(zhí)行maven命令,等效 mvn

 4maven build 5快速的操作

    如果沒有操作過,與5相同

   如果操作過一次,將直接執(zhí)行上一次5的命令

   如果操作多次,將提供選擇框

 6.5、例子,將maven web項目發(fā)布到tomcat運行

  命令:tomcat:run

 通過網(wǎng)址即可訪問,同時會將該項目上傳到本地倉庫。

七、pom.xml的依賴關(guān)系講解(重點)

    之前一直在使用pom.xml中找jar包最關(guān)鍵的三個屬性,groupId、artifactId、version,應(yīng)該有些印象了,也知道為什么通過這三個能找到對應(yīng)的jar包,但是沒有細(xì)講其中的一些小的知識點,比如上面添加servlet-jar和jsp-jar的依賴時,出現(xiàn)的一些屬性就不太懂,所以,這一章節(jié),就將依賴關(guān)系全面分析。

7.1、如何獲取坐標(biāo)(也就是三個關(guān)鍵屬性值)

步驟一:百度搜索關(guān)鍵字“maven repository”

步驟二:輸入關(guān)鍵字查詢獲得需要內(nèi)容,確定需要版本

 步驟三、獲得坐標(biāo)

 方式2、使用本地倉庫,通過myeclipse獲得坐標(biāo)

  上面已經(jīng)介紹過了如何從本地倉庫獲取對應(yīng)jar,這里在簡單闡述一下

 步驟一:添加依賴,pom.xml文件中,右鍵  

  

 步驟二:獲得坐標(biāo)

 

  7.2、依賴(坐標(biāo))的常見配置

為了避免不知道說的哪些配置屬性,看下面圖就明白了,就是dependency下的屬性配置,全部有9個,講其中的7個。

 

  groupId、artifactId、version是依賴的基本坐標(biāo),缺一不可,這三個可以不用將,都知道,重要的是除了這三個之外的配置屬性需要我們理解

         type:依賴的類型,比如是jar包還是war包等

 默認(rèn)為jar,表示依賴的jar包

   注意:<type>pom.lastUpdated</type> 這個我們在上面添加servlet-jar的時候就遇到過,看到lastUpdated的意思是表示使用更新描述信息,占位符作用,通俗點講,選擇該類型,jar包不會被加載進(jìn)來,只是將該jar包的一些描述信息加載進(jìn)來,使別的jar包在引用他時,能夠看到一些相關(guān)的提示信息,僅此而已,所以說他是個占位符,只要記住他的jar包不會被加載進(jìn)來。

 optional:標(biāo)記依賴是否可選。默認(rèn)值false

 比如struts2中內(nèi)置了log4j這個記錄日志的功能,就是將log4j內(nèi)嵌入struts2的jar包中,而struts2有沒有l(wèi)og4j這個東西都沒關(guān)系,有它,提示的信息更多,沒它,也能夠運行,只是提示的信息就相對而言少一些,所以這個時候,就可以對它進(jìn)行可選操作,想要它就要,不想要,就設(shè)置為false。

 exclusions:排除傳遞依賴,解決jar沖突問題

  依賴傳遞的意思就是,A項目 依賴 B項目,B項目 依賴 C項目,當(dāng)使用A項目時,就會把B也給加載進(jìn)來,這是傳遞依賴,依次類推,C也會因此給加載進(jìn)來。

    這個有依賴傳遞有好處,也有壞處,壞處就是jar包的沖突問題,比如,A 依賴 B(B的版本為1),C 依賴 B(B的版本為2),如果一個項目同時需要A和C,那么A,C都會傳遞依賴將B給加載進(jìn)來,問題就在這里,兩個B的版本不一樣,將兩個都加載進(jìn)去就會引起沖突,這時候就需要使用exclusions這個屬性配置了。maven也會有一個機(jī)制避免兩個都加載進(jìn)去,maven 默認(rèn)配置在前面的優(yōu)先使用,但是我們還是需要使用exclusions來配置更合理,這里使用spring bean 和struts2 spring plugin 來舉例子說明這個問題并使用exclusions解決這個問題。(spring bean 和 struts2 spring plugin都需要依賴spring-core,但版本不一樣)

 從本地倉庫中找到這兩個jar包

  maven自己的解決方案如下

   maven 默認(rèn)配置在前面的優(yōu)先使用,下面是證明

    先將spring-beans加載進(jìn)去的,所以會將spring-beans依賴的spring-core的版本加載進(jìn)來。

       

 先將struts2-spring-plugin加載進(jìn)來,那么就會將其依賴的spring-core的版本加載進(jìn)來

    

 使用exclusions來配置

 即使struts2-spring-plugin 配置在前面,也需要使用3.2.0版本。則需要為struts2-spring-plugin 排除依賴(不使用3.0.5依賴)

 

 注意:這樣,就將struts2-spring-plugin依賴的spring-core的版本排除依賴了,也就是該依賴的spring-core不會在加載進(jìn)來,查看代碼,看是否符合要求,如果不符合要求,需要手動的修改 

 scope:依賴范圍,意思就是通過pom.xml加載進(jìn)來的jar包,來什么范圍內(nèi)使用生效,范圍包括編譯時,運行時,測試時

 

 compile:默認(rèn)值,如果選擇此值,表示編譯、測試和運行都使用當(dāng)前jar

  test:表示只在測試時當(dāng)前jar生效,在別的范圍內(nèi)就不能使用該jar包。例如:junit 。此處不寫也不報錯,因為默認(rèn)是compile,compile包擴(kuò)了測試

  runtime,表示測試和運行時使用當(dāng)前jar,編譯時不用該jar包。例如:JDBC驅(qū)動。JDBC驅(qū)動,在編譯時(也就是我們寫代碼的時候都是采用接口編程,壓根就沒使用到JDBC驅(qū)動包內(nèi)任何東西,只有在運行時才用的到,所以這個是典型的使用runtime這個值的例子),此處不寫也不報錯,理由同上

  provided,表示編譯和測試時使用當(dāng)前jar,運行時不在使用該jar了。例如:servlet-api、jsp-api等?!颈仨毺顚憽?/p>

  什么意思呢? 在我們以前創(chuàng)建web工程,編寫servlet或者jsp時,就沒導(dǎo)入過jar包把,因為myeclipse或者別的ide幫我們提供了這兩個jar包,內(nèi)置了,所以我們在編譯期測試期使用servlet都不會報缺少jar包的錯誤,而在運行時期,離開了myeclipse或別的ide,就相當(dāng)于缺失了這兩個jar包,但此時tomcat又會幫我們提供這兩個jar,以便我們不會報錯,所以,這兩個很特殊??磮D

 1、開發(fā)階段(MyEclipse提供),看下圖以此證明我們說的     

java web 5.0項目:

 

 java web 6.0項目:

 2、運行階段(tomcat提供)   

所以,根據(jù)這個特點,如果使用maven開發(fā)項目,就不是web項目了,那么myeclipse就不會在給我們提供這兩個jar包,我們就必須自己手動通過坐標(biāo)從倉庫中獲取,但是針對上面的分析,當(dāng)運行的時候,tomcat會幫我們提供這兩個jar包,所以我們自己從倉庫中獲取的jar包就不能和tomcat中的沖突,那么就正好可以通過provided這個屬性,來設(shè)置這兩個jar的作用范圍,就是在變異時期和測試時期生效即可。

 這個例子就可以解釋上面創(chuàng)建maven web時產(chǎn)生的錯誤和解決方案了。

   system:表示我們自己手動加入的jar包,不屬于maven倉庫(本地,第三方等),屬于別得類庫的這樣的jar包,只在編譯和測試期生效,運行時無效。一般不用                    

7.3、依賴調(diào)節(jié)原則

 這個就是maven解決傳遞依賴時jar包沖突問題的方法,按照兩種原則,上面已經(jīng)介紹了一種了,就是下面的第二原則

 1、第一原則:路徑近者優(yōu)先原則

    A-->B-->C-->D-->X(1.6)

    E-->D-->X(2.0)

使用X(2.0),因為其路徑更近 

  2、第二原則:第一聲明者優(yōu)先原則。就是如果路徑相同,maven 默認(rèn)配置在前面的優(yōu)先使用

    A-->B --> X(1.6)

    C-->D--> X(2.0)

  這樣就是路徑相同,那么如果A在前面,C在后面,則使用X(1.6)

  maven會先根據(jù)第一原則進(jìn)行選擇,第一原則不成,則按第二原則處理。       

八、總結(jié)

  這篇文章的篇幅有點長,也消耗了我挺多的時間的,因為其中遇到一些bug,一直找不出原因,一度想放棄,但還是堅持了下來,這也只是maven的入門,知道大概怎么用,看別的應(yīng)該就看得懂,其實項目中真正用的還是下一節(jié)所要講解的。

 如何搭建私服?

  如何從私服中獲取jar包

 使用maven對父工程與子模塊的拆分和聚合。

  下一節(jié)就講這些東西把,加油。

 到此這篇關(guān)于java之maven是用來做什么的的文章就介紹到這了,更多相關(guān)java maven作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot integration實現(xiàn)分布式鎖的示例詳解

    SpringBoot integration實現(xiàn)分布式鎖的示例詳解

    常規(guī)項目都是采用Redission來實現(xiàn)分布式鎖,進(jìn)行分布式系統(tǒng)中資源競爭加鎖操作,偶然發(fā)現(xiàn)SpringBoot中的integration也實現(xiàn)多種載體的分布式鎖控制,下面我們就來看看具體實現(xiàn)方法吧
    2023-12-12
  • java集合類HashMap源碼解析

    java集合類HashMap源碼解析

    這篇文章主要介紹了Java集合之HashMap用法,結(jié)合實例形式分析了java map集合中HashMap定義、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2021-06-06
  • Spring Boot 整合單機(jī)websocket的步驟 附github源碼

    Spring Boot 整合單機(jī)websocket的步驟 附github源碼

    websocket 是一個通信協(xié)議,通過單個 TCP 連接提供全雙工通信,這篇文章主要介紹了Spring Boot 整合單機(jī)websocket的步驟(附github源碼),需要的朋友可以參考下
    2021-10-10
  • Java 使用keytool創(chuàng)建CA證書的操作

    Java 使用keytool創(chuàng)建CA證書的操作

    這篇文章主要介紹了Java 使用keytool創(chuàng)建CA證書的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java MyBatis框架環(huán)境搭建詳解

    Java MyBatis框架環(huán)境搭建詳解

    MyBatis本是apache的一個開源項目iBatis,MyBatis環(huán)境的搭建有點麻煩,本章帶你了解搭建過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值
    2022-08-08
  • 關(guān)于SpringGateway調(diào)用服務(wù) 接受不到參數(shù)問題

    關(guān)于SpringGateway調(diào)用服務(wù) 接受不到參數(shù)問題

    這篇文章主要介紹了關(guān)于SpringGateway調(diào)用服務(wù)接受不到參數(shù)問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 淺談Java生命周期管理機(jī)制

    淺談Java生命周期管理機(jī)制

    最近有位細(xì)心的朋友在閱讀筆者的文章時,對java類的生命周期問題有一些疑惑,筆者打開百度搜了一下相關(guān)的問題,看到網(wǎng)上的資料很少有把這個問題講明白的,主要是因為目前國內(nèi)java方面的教材大多只是告訴你“怎樣做”,但至于“為什么這樣做”卻不多說
    2016-01-01
  • SWT(JFace)體驗之FillLayout布局

    SWT(JFace)體驗之FillLayout布局

    FillLayout是非常簡單的一種布局方式,它會以同樣大小對父組件中的子組件進(jìn)行布局,這些子組件將以一行或一列的形式排列。
    2009-06-06
  • 關(guān)于logBack配置日志文件及編碼配置的問題

    關(guān)于logBack配置日志文件及編碼配置的問題

    這篇文章主要介紹了logBack配置日志文件及編碼配置的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java8并發(fā)新特性CompletableFuture

    Java8并發(fā)新特性CompletableFuture

    這篇文章主要介紹了Java8并發(fā)新特性CompletableFuture,CompletableFuture針對Future接口做了改進(jìn),相比Callable/Runnable接口它支持多任務(wù)進(jìn)行鏈?zhǔn)秸{(diào)用、組合、多任務(wù)并發(fā)處理,下面文章更多相關(guān)內(nèi)容得介紹,需要的小伙伴可以參考一下
    2022-06-06

最新評論