微服務 spring boot 譯<四> SpringBoot CLI

SpringBoot是一個自成體系的Java框架,用於構建基於Spring依賴注入框架的微服務。SpringBoot容許開發人員經過減小樣板、配置和開發人員摩擦來建立微服務。這是一種相似於咱們將要研究的另外兩個框架。java

SpringBoot作了如下的:git

  • 默認支持自動、常規配置github

  • 整理經常使用的啓動程序依賴項集,以便於使用web

  • 簡化應用程序打包spring

  • 洞悉應用(例如,度量和環境信息)數據庫

Simplified Configuration

從 Spring 歷史上看,配置是一場噩夢。儘管該框架在其餘模型(EJB1.x、2.x等)的基礎上進行了改進,但它確實附帶了本身的一組重量級使用模式。也就是說,Spring 須要大量的 XML 配置和對構建jdbcTemplate、jmsTemplate、BeanFactory生命週期掛鉤、servlet偵聽器和許多其餘組件所需的單個bean的深刻理解。實際上,在DispatcherServlet和一系列模型-視圖-控制器類的支持下,用SpringMVC編寫一個簡單的「helloworld」。SpringBoot的目標是用一些隱含的約定和簡化的註釋消除全部這些樣板配置--不過,若是須要的話,您仍然能夠對底層bean進行精細的調優。瀏覽器

Starter Dependencies

Spring被用於大型企業應用程序中,這些應用程序一般使用大量不一樣的技術來完成繁重的工做:jdbc數據庫、消息隊列、文件系統、應用程序級緩存等。開發人員必須中止她正在作的事情,切換認知上下文,找出哪些依賴關係屬於哪一段函數性(「哦,我須要JPA依賴關係!」),並花費大量時間來解決版本不匹配或在嘗試使用這些不一樣部分時可能出現的問題。SpringBoot爲添加這些功能提供了大量精選的庫集合。這些初學者模塊容許您添加以下內容:緩存

  • JPA persistence安全

  • NoSQL數據庫,如 MongoDB, Cassandra, Couchbasespringboot

  • Redis caching

  • Tomcat/Jetty/Undertow servlet engine

  • JTA transactions

將子模塊添加到應用程序中會引入一組通過組織的可傳遞依賴項和已知能夠協同工做的版本,從而使開發人員沒必要本身對依賴項進行排序。

Application Packaging

Spring Boot其實是一組引導庫,具備一些配置約定,但沒有理由不能在現有應用服務器內運行Spring Boot應用程序(做爲WAR)。大多數使用 SpringBoot 的開發人員喜歡的習慣用法是應用程序的自包含 JAR 打包。這意味着 SpringBoot 將全部依賴項和應用程序代碼打包到一個具備平面類加載器的自包含JAR中。這使得理解應用程序啓動、依賴順序和日誌語句變得更容易;但更重要的是,它有助於減小將應用程序安全投入生產所需的移動部件的數量。這個 SpringBootforMicroservices 意味着你不須要把一個應用程序扔進一個應用服務器;這個應用程序一旦構建好,就能夠獨立運行了--包括嵌入本身的servlet容器(若是它使用servlet的話)。沒錯,一個簡單的java-jar<name.jar>就足以啓動您的應用程序了!SpringBoot、DropWizard 和 WildFlySwarn 都遵循這種模式,將全部內容打包到一個可執行的 JAR 中。

可是,咱們一般指望從應用服務器中獲得的管理又是什麼呢?

Production Ready

SpringBoot 附帶了一個名爲執行器的模塊,它支持有關應用程序的度量和統計等功能。例如,咱們能夠收集日誌、查看度量、執行線程轉儲、顯示環境變量、理解垃圾收集以及顯示 BeanFactory 中配置了哪些bean。您能夠經過HTTP、JMX公開這些信息,甚至能夠經過SSH直接登陸到該進程。

有了Spring Boot,咱們就能夠利用Spring框架的強大功能,減小樣板配置和代碼,從而更快地構建功能強大、可生產的微服務。讓咱們看看怎麼作。

Getting Started

咱們將使用SpringBoot命令行接口(CLI)引導咱們的第一個SpringBoot應用程序(CLI在幕後使用SpringInitializr)。若是您對CLI感到不舒服,您能夠自由地探索不一樣的方法來實現這一點。其餘選擇包括爲您喜歡的IDE使用SpringInitializr插件,或者訪問SpringInitializr的Web版本。SpringBootCLI能夠經過幾種不一樣的方式安裝,包括經過包管理器和直接從網站下載。請檢查有關安裝最適合您的開發環境的CLI的說明。

一旦安裝了CLI工具,就應該可以檢查Spring的版本:

$ spring --version
    Spring CLI v1.3.3.RELEASE

若是您能夠看到安裝CLI的版本,那麼恭喜您!如今,導航到一個目錄,您想要在其中存放來自書中的示例,並運行如下命令:

spring init --build maven --groupId com.redhat.examples \

--version 1.0 --java-version 1.8 --dependencies web \

--name hola-springboot hola-springboot

在運行此命令以後,您應該有一個名爲hola-Spring的目錄,其中包含一個完整的SpringBoot應用程序。若是運行該命令並以demo.zip結束,則只需解壓縮並繼續。讓咱們快速瞭解一下這些命令行選項是什麼。

--build

咱們如今想要使用的構建管理工具maven或gradle是兩個有效的選項。

--groupId

在咱們的maven中使用的groupId是咱們的app.xml的座標;不幸的是,這並無正確地擴展到建立的Java包名稱。這些都須要手工修改

--version

應用程序的版本;將在之後的迭代中使用,所以設置爲1.0。

-- java-version

容許咱們指定JDK的編譯版本

--dependencies

這是一個有趣的參數;咱們能夠指定徹底成熟的依賴集來進行常見類型的開發。例如,Web將設置SpringMVC並嵌入一個內部Servlet引擎(默認狀況下爲Tomcat;Jetty和 Undertow爲選項)。其餘方便的依賴包/啓動程序包括JPA、安全性和Cassandra)。

如今,若是您到hola-Spring引導目錄,請嘗試運行如下命令:

$ mvn spring-boot:run

若是一切都引導起來沒有任何錯誤,您應該會看到一些相似這樣的日誌記錄

恭喜你!您已經快速得到了一個SpringBoot應用程序並開始運行!您甚至能夠在瀏覽器中導航到http://localhost:8080,並應該看到如下輸出:

這個默認的錯誤頁面是預期的,由於咱們的應用程序尚未作任何事情!讓咱們進入下一節,添加一個REST,以組合一個hello-world用例!

 

原文:

做者源碼:https://github.com/redhat-developer/microservices-by-example-source

相關文章
相關標籤/搜索