<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    SpringBoot快速開發利器:Spring Boot CLI

    VSole2022-01-11 17:08:26

    Spring boot CLI是運行spring boot命令的命令行界面。

    Spring提供了用于創建、運行和測試spring boot應用程序的spring命令。

    Spring boot CLI應用程序使用groovy語言,通過這種方式,我們用最少的代碼行創建我們的應用程序并啟動它。

    使用groovy的Spring boot CLI具有以下特點。

    1. Spring boot CLI應用程序使用groovy。我們在應用程序中創建groovy文件,為此我們不需要提供groovy的任何JAR依賴。Spring boot會自己配置groovy的JAR依賴項。
    2. 在編寫groovy文件時,我們不需要寫導入語句,直到需要為止。在寫導入語句之前,我們應該檢查我們是否得到導入錯誤。通過這種方式,我們盡可能地寫出最少的代碼行數。
    3. Spring boot CLI不需要任何構建工具。Spring boot以與Maven和Gradle相同的方式自動抓取spring依賴JAR包。版本是從Spring Boot CLI的版本中提取的。
    4. Spring boot下載JAR依賴項時,通過記住我們在應用程序編碼中使用了哪些spring注解和類。如果我們使用@Controller注解,那么Spring Boot就會下載Spring Web應用程序的JAR依賴項。
    5. 為了下載第三方依賴的JAR,如thymleaf,spring boot使用@Grab注釋groovy功能。
    6. Spring boot提供spring run命令來運行應用程序,spring test命令來運行spring測試應用程序。
    7. 我們可以使用spring boot命令行創建可執行的JAR文件。對于應用程序的打包,spring boot提供spring jar命令。
    8. 使用命令行界面,我們可以使用spring init命令從spring initializer站點創建項目。
    9. Spring boot為Windows用戶提供了使用spring shell命令的集成外殼。
    10. 使用spring boot CLI時,我們不需要創建spring boot main()方法。它是由spring boot CLI自動提供的。

    在這一篇,我們將安裝spring boot CLI,然后我們將創建一個spring boot CLI示例應用程序,并運行它和測試它。

    安裝 Spring Boot CLI

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

    • 手動安裝
    • 使用SDKMAN進行安裝!
    • OSX自制軟件的安裝
    • MacPorts的安裝
    • 命令行完成

    找到Spring boot CLI安裝細節的鏈接。在我的例子中,我將在我的Windows 7操作系統中使用手動安裝來安裝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:解壓縮并保存在你系統的某個地方。假設我把它保存在如下位置。
    C:\spring-1.4.3.RELEASE
    

    現在我們需要在我們的系統中設置以下環境變量。

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

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

    查找更多Spring boot CLI命令。

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

    現在我們可以開始使用Spring boot CLI了。

    演示項目結構

    找到演示項目結構,我們將使用spring boot CLI和groovy來運行。

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

    用 Spring Boot CLI 創建 Hello World 示例

    我們將使用Groovy創建一個簡單的 "Hello World"網絡應用。請看下面的代碼。

    hello.groovy

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

    當我們使用Spring boot CLI和Groovy時,我們可以用最少的代碼運行我們的應用程序。在我們的代碼中,我們將得到以下結果。

    1. 默認的導入語句。在大多數情況下,我們不需要導入API。只有在不屬于默認導入語句的情況下才可以導入。
    2. spring boot沒有main方法。它將被自動創建。

    為了編譯和運行Groovy源代碼,Spring boot CLI提供了run命令,我們按以下方式調用。

    spring run hello.groovy 
    

    使用該命令,我們實現了以下幾點。

    1. 它下載所有的依賴性JAR。依賴性JAR的版本由我們所使用的Spring boot CLI的版本決定。下載JAR只在第一次時進行。
    2. 依賴性JAR是由代碼中使用的類和注解定義的。由于我們使用的是@RestController,所以會下載與Spring MVC和嵌入式Tomcat相關的JAR。
    3. 現在它編譯代碼并在默認端口8080上啟動嵌入式Tomcat服務器。

    找到打印界面。

    通過URL http://localhost:8080/home 來訪問該應用程序。

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

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

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

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

    spring run *.groovy 
    

    使用 @Grab 注釋

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

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

    根據Spring注解和應用程序中使用的類,Spring的依賴性被自動抓取。

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

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

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

    現在找到這個例子中使用的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> 
    

    要運行這個例子,在項目的根目錄下用命令提示符運行以下命令。

    spring run *.groovy 
    

    現在訪問 http://localhost:8080/

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

    Spring boot會根據需要自動抓取spring JAR。

    例如,如果我們使用以下注解和類,那么相關的JAR依賴將被自動下載。

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

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

    Spring Boot CLI 測試應用程序

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

    tests.groovy

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

    要運行測試應用程序,請使用以下命令。

    spring test hello.groovy tests.groovy 
    

    上述命令的說明如下。

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

    運行該命令后,我們得到的結果如下。

    使用 Spring Boot CLI 打包應用程序

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

    spring jar spring-app.jar *.groovy 
    

    這將創建兩個JAR。

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

    可執行的jar文件的運行方式如下。

    java -jar spring-app.jar 
    

    找到打印界面。

    在打包應用程序時,spring boot默認包括以下目錄。

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

    而默認的排除目錄是

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

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

    spring help jar 
    

    使用 Spring Boot CLI 創建一個新項目

    使用init命令,Spring boot CLI可以用maven作為默認的構建工具創建一個新項目,該工具使用https://start.spring.io。假設我們想用thymleaf創建一個Web項目,那么我們將運行如下命令。

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

    在pom.xml中,web,thymeleaf的依賴關系將配置為以下spring boot啟動器。

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

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

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

    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命令來啟動一個集成shell。如果使用WINDOWS,那么使用以下命令啟動集成shell。

    spring shell 
    

    現在我們可以直接運行命令而不使用spring關鍵字,如

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

    找到打印界面。

    參考文獻

    • 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
    bootgroovy
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Spring boot CLI是運行spring boot命令的命令行界面。 Spring提供了用于創建、運行和測試spring boot應用程序的spring命令。 Spring boot CLI應用程序使用groovy語言,通過這種方式,我們用最少的代碼行創建我們的應用程序并啟動它。 使用groovy的Spring boot CLI具有以下特點。 Spring boot CLI應用程序使
    聊一聊新版本的幾個主要功能更新和改進。
    在微服務架構中,業務邏輯被拆分成一系列小而松散耦合的分布式組件,共同構成了較大的應用。
    Boot Camp 6.4.0中Wi-Fi中存在漏洞,攻擊者可以利用這些漏洞獲取對敏感信息的訪問權限。蘋果已經發布了一項安全更新,以解決Boot Camp 6.4.0中Wi-Fi的漏洞問題。
    對于web服務來說,為防止非法參數對業務造成影響,在Controller層一定要做參數校驗的!requestBody參數校驗POST、PUT請求一般會使用requestBody傳遞參數,這種情況下,后端使用DTO對象進行接收。只要給DTO對象加上@Validated注解就能實現自動參數校驗。
    使用java和redis實現一個簡單的熱搜功能,具備以下功能: 搜索欄展示當前登陸的個人用戶的搜索歷史記錄,刪除個人歷史記錄 用戶在搜索欄輸入某字符,則將該字符記錄下來 以zset格式存儲的redis中,記錄該字符被搜索的個數以及當前的時間戳 (用了DFA算法,感興趣的自己百度學習吧) 每當用戶查詢了已在redis存在了的字符時,則直接累加個數, 用來獲取平臺上最熱查詢的十條數據。(可以自己寫接
    異步調用幾乎是處理高并發Web應用性能問題的萬金油,那么什么是“異步調用”? “異步調用”對應的是“同步調用”,同步調用指程序按照定義順序依次執行,每一行程序都必須等待上一行程序執行完成之后才能執行;異步調用指程序在順序執行時,不等待異步調用的語句返回結果就執行后面的程序。
    spring-boot-actuator-logview 在一個庫中添加了一個簡單的日志文件查看器作為 spring boot 執行器端點。它是 maven 包“eu.hinsch:spring-boot-actuator-logview”。在 0.2.13 版本之前的 spring-boot-actuator-logview 中存在目錄遍歷漏洞。該庫的本質是通過 admin(spring boo
    spring-boot下的thymeleaf模板注入挺有趣的,本文嘗試對該漏洞一探究竟,如有謬誤,還請同學們指教。
    該組織將公司支付贖金的最后期限定為4月29日,以阻止該組織發布被盜數據。征求意見截止日期為2023年7月5日。在調查確認了此事后,西部數據已將其商店下線,并向客戶發送了數據泄露通知。上周五下午,該公司通過電子郵件發送了數據泄露通知,稱其數據庫遭到攻擊,存儲在內的客戶數據被盜。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类