在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 應用到阿里雲
Spring Cloud 和 Spring Boot 可以說是當前最流行的微服務開發框架了,在本文中,將向讀者介紹如何在 在 Intellij IDEA 中部署 Spring Boot / Spring Cloud 應用到阿里雲。(Eclipse 平臺請移步《在 Eclipse 中部署 Spring Boot / Spring Cloud 應用到阿里雲》)
本地開發
無論是編寫雲端執行的,還是編寫本地執行的 Spring Cloud 或 Spring Boot 應用程式,程式碼編寫本身並沒有特別大的變化,因此本文采用一個極其基礎的樣例《在 Web 頁面列印 HelloWorld 的 Spring Boot 》為例,通過啟動內建的 Tomcat 容器,處理 HTTP 請求,在 Web 頁面上列印一串“Hello World”的文案。
內嵌的 Tomcat 監聽來自根目錄的請求
package com.aliyun.toolkit.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/")
public String sayHello() {
return "Alibaba Cloud Toolkit: Hello,World.";
}
}
Spring Boot 的啟動類
package com.aliyun.toolkit.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Startup {
public static void main (String[] args) {
SpringApplication.run(Startup.class,args);
}
}
上述程式碼就是一個標準的 Spring Boot 工程。
安裝外掛
阿里雲提供了基於 Intellij IDEA 的外掛,以方便開發人員能夠高效的將本地 IDE 中編寫的應用程式,極速部署到 ECS中去。
外掛主頁:https://www.aliyun.com/product/cloudtoolkit
阿里雲的這個 Intellij IDEA 外掛的安裝過程,和普通的外掛大同小異,這裡不再贅述,讀者請自行安裝。
配置外掛首選項
安裝完外掛之後,按照如下路徑進行首選項配置
頂部選單 - Tools - Alibaba Cloud Toolkit - Preferences
出現如下介面,配置阿里雲賬號的 AK 和 SK,即可完成首選項配置。(如果是子賬號,則填寫子賬號的 AK 和 SK)
部署
在 Intellij IDEA 中,滑鼠右鍵專案工程名,在出現的選單中點選 Alibaba Cloud - Deploy to ECS…,可會出現如下部署視窗:
設定部署引數,然後單擊 Run,即可執行部署。
部署引數說明
-
Deploy File:部署檔案包含兩種方式。
-
Maven Build:如果當前工程採用 Maven 構建,可以使用 Cloud Toolkit 直接構建並部署。
-
Upload File:如果當前工程並非採用 Maven 構建,或者本地已經存在打包好的部署檔案,可以選擇並直接上傳本地的部署檔案。
-
Target Deploy ECS:在下拉列表中選擇地域,然後在地域中選擇要部署的 ECS 例項。
-
Deploy Location :輸入在 ECS 上部署路徑,如 /root/act_springboot
-
Commond:輸入應用啟動命令,如 sh /root/act_springboot/restart.sh。表示在完成應用包的部署後,需要執行的命令 —— 對於 Spring Boot 程式而言,通常是一句 java -jar XXXX.jar 的啟動命令。
/root/act_springboot/restart.sh 內容如下:
source ~/.bash_profile
killall java
nohup java -jar /root/springbootdemo/springbootdemo-0.0.1-SNAPSHOT.jar > nohup.log 2>&1 &