<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot快速開發(fā)利器:Spring Boot CLI

          共 6225字,需瀏覽 13分鐘

           ·

          2022-01-21 07:47

          來源:blog.csdn.net/qq_31635851/article/

          details/120411711

          Spring boot CLI是運(yùn)行spring boot命令的命令行界面。

          Spring提供了用于創(chuàng)建、運(yùn)行和測試spring boot應(yīng)用程序的spring命令。

          Spring boot CLI應(yīng)用程序使用groovy語言,通過這種方式,我們用最少的代碼行創(chuàng)建我們的應(yīng)用程序并啟動(dòng)它。

          使用groovy的Spring boot CLI具有以下特點(diǎn)。

          1. Spring boot CLI應(yīng)用程序使用groovy。我們在應(yīng)用程序中創(chuàng)建groovy文件,為此我們不需要提供groovy的任何JAR依賴。Spring boot會(huì)自己配置groovy的JAR依賴項(xiàng)。

          2. 在編寫groovy文件時(shí),我們不需要寫導(dǎo)入語句,直到需要為止。在寫導(dǎo)入語句之前,我們應(yīng)該檢查我們是否得到導(dǎo)入錯(cuò)誤。通過這種方式,我們盡可能地寫出最少的代碼行數(shù)。

          3. Spring boot CLI不需要任何構(gòu)建工具。Spring boot以與Maven和Gradle相同的方式自動(dòng)抓取spring依賴JAR包。版本是從Spring Boot CLI的版本中提取的。

          4. Spring boot下載JAR依賴項(xiàng)時(shí),通過記住我們在應(yīng)用程序編碼中使用了哪些spring注解和類。如果我們使用@Controller注解,那么Spring Boot就會(huì)下載Spring Web應(yīng)用程序的JAR依賴項(xiàng)。

          5. 為了下載第三方依賴的JAR,如thymleaf,spring boot使用@Grab注釋groovy功能。

          6. Spring boot提供spring run命令來運(yùn)行應(yīng)用程序,spring test命令來運(yùn)行spring測試應(yīng)用程序。

          7. 我們可以使用spring boot命令行創(chuàng)建可執(zhí)行的JAR文件。對于應(yīng)用程序的打包,spring boot提供spring jar命令。

          8. 使用命令行界面,我們可以使用spring init命令從spring initializer站點(diǎn)創(chuàng)建項(xiàng)目。

          9. Spring boot為Windows用戶提供了使用spring shell命令的集成外殼。

          10. 使用spring boot CLI時(shí),我們不需要?jiǎng)?chuàng)建spring boot main()方法。它是由spring boot CLI自動(dòng)提供的。

          在這一篇,我們將安裝spring boot CLI,然后我們將創(chuàng)建一個(gè)spring boot CLI示例應(yīng)用程序,并運(yùn)行它和測試它。

          安裝 Spring Boot CLI

          要使用Spring boot CLI,首先我們需要在系統(tǒng)中安裝它。有很多方法可以安裝Spring boot CLI。

          • 手動(dòng)安裝
          • 使用SDKMAN進(jìn)行安裝!
          • OSX自制軟件的安裝
          • MacPorts的安裝
          • 命令行完成

          找到Spring boot CLI安裝細(xì)節(jié)的鏈接。在我的例子中,我將在我的Windows 7操作系統(tǒng)中使用手動(dòng)安裝來安裝Spring boot CLI。找到下面的步驟。

          步驟1:使用以下鏈接下載Spring boot CLI

          http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.4.3.RELEASE/spring-boot-cli-1.4.3.RELEASE-bin.zip

          步驟2:解壓縮并保存在你系統(tǒng)的某個(gè)地方。假設(shè)我把它保存在如下位置。
          C:\spring-1.4.3.RELEASE

          現(xiàn)在我們需要在我們的系統(tǒng)中設(shè)置以下環(huán)境變量。

          • SPRING_HOME的值為C:\spring-1.4.3.RELEASE
          • PATH的值為C:\spring-1.4.3.RELEASE\bin

          步驟3:現(xiàn)在我們將測試我們的安裝。打開命令提示符并鍵入命令spring,我們將得到以下結(jié)果。

          查找更多Spring boot CLI命令。

          • spring help run : 提供支持的命令的詳細(xì)信息。
          • spring version : 提供Spring boot CLI的版本。

          現(xiàn)在我們可以開始使用Spring boot CLI了。微信搜索公眾號:Java項(xiàng)目精選,回復(fù):java 領(lǐng)取資料 。

          演示項(xiàng)目結(jié)構(gòu)

          找到演示項(xiàng)目結(jié)構(gòu),我們將使用spring boot CLI和groovy來運(yùn)行。

          spring-app
          ???|
          ????--message.groovy??
          ????--hello.groovy?
          ????--tests.groovy
          ????--templates
          ?????????|
          ??????????--hello.html
          ????--static
          ????????|
          ?????????--index.html?

          用 Spring Boot CLI 創(chuàng)建 Hello World 示例

          我們將使用Groovy創(chuàng)建一個(gè)簡單的 "Hello World"網(wǎng)絡(luò)應(yīng)用。請看下面的代碼。

          hello.groovy

          @RestController
          class?HelloController?{
          ????@RequestMapping("/home")
          ????String?home()?{
          ????????"Hello?World!"
          ????}
          }?

          當(dāng)我們使用Spring boot CLI和Groovy時(shí),我們可以用最少的代碼運(yùn)行我們的應(yīng)用程序。在我們的代碼中,我們將得到以下結(jié)果。

          1. 默認(rèn)的導(dǎo)入語句。在大多數(shù)情況下,我們不需要導(dǎo)入API。只有在不屬于默認(rèn)導(dǎo)入語句的情況下才可以導(dǎo)入。
          2. spring boot沒有main方法。它將被自動(dòng)創(chuàng)建。

          為了編譯和運(yùn)行Groovy源代碼,Spring boot CLI提供了run命令,我們按以下方式調(diào)用。

          spring?run?hello.groovy?

          使用該命令,我們實(shí)現(xiàn)了以下幾點(diǎn)。

          1. 它下載所有的依賴性JAR。依賴性JAR的版本由我們所使用的Spring boot CLI的版本決定。下載JAR只在第一次時(shí)進(jìn)行。
          2. 依賴性JAR是由代碼中使用的類和注解定義的。由于我們使用的是@RestController,所以會(huì)下載與Spring MVC和嵌入式Tomcat相關(guān)的JAR。
          3. 現(xiàn)在它編譯代碼并在默認(rèn)端口8080上啟動(dòng)嵌入式Tomcat服務(wù)器。

          找到打印界面。

          通過URL http://localhost:8080/home 來訪問該應(yīng)用程序。

          如果我們想改變默認(rèn)端口,那么我們需要用server.port運(yùn)行命令,如下所示。

          spring?run?hello.groovy?--?--server.port=8484?

          我們需要注意,我們將使用分隔符--與spring命令參數(shù)--server.port一起。現(xiàn)在,嵌入式Tomcat將以8484端口啟動(dòng),為了運(yùn)行應(yīng)用程序,我們需要使用http://localhost:8484/home來訪問。

          如果我們有多個(gè)groovy文件,并且要一起運(yùn)行所有這些groovy文件,我們可以使用以下命令。

          spring?run?*.groovy?

          使用 @Grab 注釋

          Groovy提供了@Grab注解來解決JAR的依賴性。

          Spring boot也支持@Grab注解,只解決第三方的依賴。

          根據(jù)Spring注解和應(yīng)用程序中使用的類,Spring的依賴性被自動(dòng)抓取。

          它下載JAR的方式與Maven和Gradle相同,無需使用任何構(gòu)建工具。我們使用@Grab注解來下載第三方依賴,如下所示。

          @Grab('spring-boot-starter-thymeleaf')
          class?MessageController?{}?

          在上面的代碼中,我們將看到我們只需要傳遞artifact id。Group id 和 version將從spring boot的默認(rèn)依賴元數(shù)據(jù)中獲取。

          現(xiàn)在找到這個(gè)例子中使用的groovy和HTML文件。

          message.groovy

          @Controller
          @Grab('spring-boot-starter-thymeleaf')
          class?MessageController?{
          ????@RequestMapping("/msg")
          ?String?getMsg(Model?model)?{
          ?????String?msg?=?"Welcome?to?Everyone!";
          ????????model.addAttribute("message",?msg);
          ????????return?"hello";
          ????}
          }?

          templates/hello.html

          HTML>
          <html?xmlns:th="http://www.thymeleaf.org">
          <head>?
          ????<title>Spring?Boot?CLI?Exampletitle>?
          ????<meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"?/>
          head>
          <body>?
          ????<p?th:text="'Message:?'?+?${message}"?/>
          body>
          html>?

          static/index.html

          HTML>
          <html>
          <head>?
          ????<title>Spring?Boot?CLI?Exampletitle>?
          ????<meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"?/>
          head>
          <body>
          ????<p>Click?to?get?<a?href="/msg">Messagea>?p>
          body>
          html>?

          要運(yùn)行這個(gè)例子,在項(xiàng)目的根目錄下用命令提示符運(yùn)行以下命令。

          spring?run?*.groovy?

          現(xiàn)在訪問 http://localhost:8080/

          Spring boot只需要@Grab注解來解決第三方JAR,例如spring-boot-starter-thymeleaf,freemarker等。

          Spring boot會(huì)根據(jù)需要自動(dòng)抓取spring JAR。

          例如,如果我們使用以下注解和類,那么相關(guān)的JAR依賴將被自動(dòng)下載。

          1. @Controller @RestController @EnableWebMvc : 在這種情況下,Spring MVC和嵌入式Tomcat將被下載。
          2. @EnableWebSecurity : Spring安全相關(guān)的JAR將被下載。
          3. @EnableJms: JMS應(yīng)用程序相關(guān)的JAR將被下載。
          4. @Test : 將會(huì)下載Spring測試應(yīng)用相關(guān)的JAR。

          具體請查看鏈接中的Deduced “grab” Dependencies部分

          Spring Boot CLI 測試應(yīng)用程序

          Spring boot CLI提供了test命令,我們可以用它來測試我們的spring boot應(yīng)用程序。找到我們例子中使用的groovy類來測試hello.groovy。

          tests.groovy

          class?ApplicationTests?{
          ????@Test
          ????void?HelloAppTest()?{
          ????????assertEquals("Hello?World!",?new?HelloController().home())
          ????}
          }?

          要運(yùn)行測試應(yīng)用程序,請使用以下命令。

          spring?test?hello.groovy?tests.groovy?

          上述命令的說明如下。

          • spring test:Spring boot CLI命令,用于測試應(yīng)用程序。
          • hello.groovy:需要測試的應(yīng)用程序文件。
          • tests.groovy:測試文件,用于測試應(yīng)用程序文件。

          運(yùn)行該命令后,我們得到的結(jié)果如下。

          使用 Spring Boot CLI 打包應(yīng)用程序

          Spring boot CLI提供了jar命令來打包我們的應(yīng)用程序。我們可以按以下方式使用它。

          spring?jar?spring-app.jar?*.groovy?

          這將創(chuàng)建兩個(gè)JAR。

          • spring-app.jar : 這是可執(zhí)行的JAR。
          • spring-app.jar.original : 這是原JAR。

          可執(zhí)行的jar文件的運(yùn)行方式如下。

          java?-jar?spring-app.jar?

          找到打印界面。

          在打包應(yīng)用程序時(shí),spring boot默認(rèn)包括以下目錄。

          public/**,?resources/**,?static/**,?templates/**,?META-INF/**

          而默認(rèn)的排除目錄是

          repository/**,?build/**,?target/**,?**/*.jar,?**/*.groovy?

          使用--include,我們可以將默認(rèn)排除目錄添加到打包的目錄中。使用--exclude,我們可以刪除打包的目錄。有關(guān)更多詳細(xì)信息,我們可以按如下方式運(yùn)行help命令。

          spring?help?jar?

          使用 Spring Boot CLI 創(chuàng)建一個(gè)新項(xiàng)目

          使用init命令,Spring boot CLI可以用maven作為默認(rèn)的構(gòu)建工具創(chuàng)建一個(gè)新項(xiàng)目,該工具使用https://start.spring.io。假設(shè)我們想用thymleaf創(chuàng)建一個(gè)Web項(xiàng)目,那么我們將運(yùn)行如下命令。

          spring?init?--dependencies=web,thymeleaf?my-app.zip?

          在pom.xml中,web,thymeleaf的依賴關(guān)系將配置為以下spring boot啟動(dòng)器。

          spring-boot-starter-web
          spring-boot-starter-thymeleaf?

          my-app.zip文件將被下載到我們運(yùn)行命令的目錄中。

          如果我們想使用Gradle構(gòu)建工具,用任何特定的java版本構(gòu)建WAR文件,那么我們可以運(yùn)行如下命令。

          spring?init?--build=gradle?--java-version=1.8?--dependencies=web,thymeleaf?--packaging=war?my-app.zip?

          使用嵌入式 Shell

          Spring boot有BASH和Zsh shells的命令行完成腳本。

          如果我們使用WINDOWS,Spring Boot提供shell命令來啟動(dòng)一個(gè)集成shell。如果使用WINDOWS,那么使用以下命令啟動(dòng)集成shell。

          spring?shell?

          現(xiàn)在我們可以直接運(yùn)行命令而不使用spring關(guān)鍵字,如

          $?version
          $?test?hello.groovy?tests.groovy
          $?run?hello.groovy?

          找到打印界面。

          參考文獻(xiàn)

          • http://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-installing-spring-boot.html
          • https://docs.spring.io/spring-boot/docs/current/reference/html/cli-using-the-cli.html
          • https://www.concretepage.com/spring-boot/spring-boot-cli-example

          源碼下載

          • https://www.concretepage.com/spring-boot/download/spring-boot-cli-example.zip


          --- EOF ---

          剛剛整理好了的第五版《Java大廠面試題》,而且已經(jīng)分類?25?PDF累計(jì) 2098頁!

          整理的面試題,內(nèi)容列表


          互聯(lián)網(wǎng)大廠面試題,怎么領(lǐng)取?

          ?注意,不要亂回復(fù)?
          (一定要回復(fù)?面試題?)否則獲取不了


          覺得不錯(cuò),請點(diǎn)個(gè)在看

          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一区二区三区视频在线播放 | 91精品秘 一区二区三区 | 久草热人妻 | 在线观看内射婷婷 | 成人做爱影片 |