1. 程式人生 > >Spring Boot速覽及在Azure上的部署

Spring Boot速覽及在Azure上的部署

Azure 微軟 Spring Boot Java 雲

Spring Boot繼承了Spring Framework的強大,但卻同時免去了Spring Framework繁雜的配置,而且其內置TomCat容器,使得web開發極為高效便捷。

此外,隨著與雲計算,集群等技術的成本不斷下降並變得廣為流行,微服務(Micro-Service)的概念也逐漸引申出來,我們可以將微服務看作是一個小程序,這個小程序是一個基本計算單元,實現了某一功能,該小程序往往還“自包含”了Http服務器(Self-Hosting)。這些特性使得小程序可以獨立存在,部署極為方便。可以很容易的部署到各個計算節點上。說到這裏,很多人發現NodeJS非常具備開發微服務的特性,然而,有了Spring Boot,使用Java語言一樣可以方便開發出微服務,而且Java語言天生的強類型特性也使其保證了程序的健壯性。

下面給出一個簡單的基於Spring Boot的程序,該程序非常簡單,只有兩個文件,主程序Application.Java和控制器DemoController.java。


Application.java

Application.java
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}


DemoController.java

@RequestMapping("/hello")
public String hello() {
    return "Hello World";
}


編譯打包生成一個可執行jar包Application.jar,然後在命令行輸入java -jar Application.jar啟動該程序。打開瀏覽器,輸入http://localhost:8080/hello即可看到該程序的輸出

技術分享圖片

可見,使用Spring Boot開發一個Web應用是多麽的便捷啊,我們無需去配置搭建http服務器,無需配置搭建Java應用容器。一個JAR包即可“闖天下”。


如果我們開發了一個微服務,並打包成JAR,我們可以將它放到雲上或者一個有網絡的本地服務器上去運行。如何放在本地服務器上運行就不再贅述了,簡言之,直接運行Java -jar XXX.jar即可實現微服務的部署。接下來我們就看看如果將這個JAR包部署到微軟的Azure雲服務上。

首先我們需要登陸到Azure去創建一個Web App。依次點擊“Create a resource”,“Web + Mobile”,“Web App”

技術分享圖片



然後填寫程序名稱,選擇訂閱賬號

技術分享圖片


創建完成後進入Web App配置界面,允許Git上傳,並設置上傳賬號

技術分享圖片


進入Application settings開啟Java支持

技術分享圖片


至此,我們完成了Web App的創建和配置,接下來我們就要開始部署我們的JAR包到雲上了。

首先我們克隆雲上的項目到本地,進入Overview,然後復制Git clone url。在命令行使用git clone http://xxx 克隆到本地。初始項目只有一個html文件和一個空的webapps目錄。

技術分享圖片


拷貝我們的JAR 包到webapps裏面,然後新建一個web.config文件在項目根目錄

技術分享圖片


復制如下內容到web.config文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
        arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\webapps\main.jar&quot;">
    </httpPlatform>
  </system.webServer>
</configuration>


然後使用GIT命令添加,提交到雲,至此,部署完成!接下來,我們打開瀏覽器,輸入項目的網址https://XXXX.azurewebsites.net即可訪問看到Hello World。



Spring Boot速覽及在Azure上的部署