本文將向您描述如何使用 SOFABoot 框架創建一個Web 工程,實現本地運行或部署到云端運行,以及如何引入中間件服務。
主要步驟如下:
Core 工程 與 Web 工程類似,具體步驟詳見 新建工程。
創建 Web 工程
前置條件
為執行本文代碼示例,您需要首先搭建 SOFABoot 的運行環境。具體步驟詳見 搭建環境。
創建步驟
SOFABoot Web 工程的創建,主要分為 2 個步驟:
具體操作步驟如下:
創建本地工程
本文檔僅支持 SOFABoot ≥ 3.3.0 版本的創建,如需升級,請參考 SOFABoot 升級說明。
打開命令行工具,輸入并執行以下語句:
mvn archetype:generate -DarchetypeGroupId=com.alipay.sofa -DarchetypeArtifactId=sofaboot-web-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeCatalog=internal
在執行過程中,根據系統提示輸入以下 Maven 坐標信息:
groupId:是 Maven 倉庫中的唯一標識,一般為公司域名或組織域名的反寫。作為示例,可填為
com.alipay.sofa
。artifactId:表示項目名稱或應用名稱。作為示例,可填為
web-app
。version:版本號,默認為
1.0-SNAPSHOT
。SNAPSHOT 意為快照,說明該項目還在開發中,是不穩定的版本。作為示例,此處可維持默認值。package:應用包名,默認等同于 groupId。
# 示例 Define value for property 'groupId': com.alipay.sofa Define value for property 'artifactId': web-app Define value for property 'version': 1.0-SNAPSHOT Define value for property 'package': com.alipay.sofa
確認輸入的 Maven 坐標信息。
如果信息無誤,輸入 Y 確認,則工程繼續創建。
如需修改信息,輸入 N 重新定義工程屬性。
# 示例 Confirm properties configuration: groupId: com.alipay.sofa artifactId: web-app version: 1.0-SNAPSHOT package: com.alipay.sofa Y::
工程創建完成。命令行提示以下信息。您可以在當前路徑下的
./web
文件夾找到創建的工程文件。[INFO]Project created fromArchetypein dir:{current_dir}/web [INFO]------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO]------------------------------------------------------------------------ [INFO]Total time:28.298 s [INFO]Finished at:2018-01-10T23:36:19+08:00 [INFO]FinalMemory:15M/163M [INFO]------------------------------------------------------------------------
請移步 版本說明,查看最新的 SOFABoot 版本,然后在工程根目錄下的主 pom.xml 中,修改
<parent>
標簽的版本號,示例如下:
配置關鍵屬性
在云端發布前,請務必進行 application.properties
配置。更多詳情,請參考 引入 SOFA 中間件。配置步驟如下:
請前往 SOFAStack 控制臺 > 研發效能 > 腳手架 > Step 2,示例如下:
從中獲取下述信息:
實例標識:應用實例在工作空間中的唯一標識,在 application 中對應的 key 為:
com.alipay.instanceid
。AntVIP:應用通過 AntVIP 來獲取各個組件的服務端地址,每個區域一個地址。在 application 中對應的 key 為
com.antcloud.antvip.endpoint
。不同環境的 AntVIP 地址值,見下述規定。杭州金區:
cn-hangzhou-fin-middleware-acvip-prod.cloud.alipaycs.net
上海非金:
cn-shanghai-middleware-acvip-prod.cloud.alipaycs.net
上海金區:
cn-shanghai-fin-sofastack-middleware-acvip-prod.cloud.alipaycs.net
杭州非金:
cn-hangzhou-middleware-acvip-prod.cloud.alipaycs.net
在 腳手架 控制臺,單擊右上角用戶圖像,選擇 AccessKey Management,在跳轉的頁面中即可獲取訪問控制對應的屬性值。 這些屬性在 application 中對應的 key 分別為:
Access Key ID:
com.antcloud.mw.access
Access Secret:
com.antcloud.mw.secret
說明如果需要創建 AccessKey,可單擊 獲取 AK。更多詳情,請參見 創建 AccessKey。
確定運行模式和運行環境,示例如下:
run.mode=NORMAL com.alipay.env=shared
將上述屬性鍵和值,配置在
application.properties
文件中。
對于有關 SOFABoot 框架的整體配置、工程依賴的配置,以及中間件服務的配置,請參見:
將 Web 工程導入 IDE
SOFABoot 工程是標準的 Maven 工程。您可以使用經典的 Java 開發工具(如 IntelliJ IDEA 、Eclipse 等)對其進行開發。請遵照以下步驟將 SOFABoot 工程導入相應的 IDE 工具中:
IntelliJ IDEA
打開 IntelliJ IDEA 程序。
導入之前創建的工程目錄。
如果您是首次使用,或者之前關閉了所有工程,程序會跳出歡迎界面。在該界面中,單擊 Open > 選擇之前創建的工程目錄 > OK。
如果 IntelliJ IDEA 自動為您載入了上次未關閉的工程,您可以單擊 File > Open > 選擇之前創建的工程目錄 > OK。
配置 Maven:
單擊 File > Settings,打開設置窗口,并通過以下任一方式定位到 Maven 配置頁面:
依次單擊 Build, Execution, Deployment > Build tools > Maven。
搜索關鍵字 Maven。
將 Maven home directory 項配置為本地 Maven 安裝目錄。
將 User Settings file 項配置為本地 Maven 的
settings.xml
文件路徑。單擊 OK 關閉設置窗口。
導入完成后,您可以在工程文件目錄中查看工程結構與內容。
Eclipse
打開 Eclipse 程序。
配置 Maven:
單擊 Window > Preferences,打開首選項窗口,并搜索關鍵字 Maven 定位到 Maven 配置頁面。
在 Maven 下,選擇 Installations 并配置 Maven 目錄。
如果 Installations 列表中已有本地 Maven 安裝目錄選項,直接勾選該選項。
如果列表中沒有本地 Maven 安裝目錄選項,單擊 Add。在新窗口中,將 Installation home 配置為本地 Maven 安裝目錄,單擊 Finish 返回并勾選新添加的目錄選項。
單擊 Apply,保存配置。
在 Maven 下,選擇 User Settings 并將 User Settings 項配置為本地 Maven 的
settings.xml
文件路徑。單擊 Apply and Close 保存配置并關閉首選項窗口。
單擊 File > Import > Maven > Existing Maven Projects > Next > 選擇之前創建的工程目錄 > Finish。
本地編譯運行
主要操作步驟如下:
通過下述任一方式啟動本地工程:
命令行方式啟動:
通過 cd 命令,進入工程根目錄。
執行
mvn clean install
命令。
通過 IDE 方式啟動:運行 Web 模塊下的 main 函數。
成功運行后,在瀏覽器中訪問
http://localhost:8080/index.html
,您可以看到以下靜態頁面信息:the static page inSOFABoot based on spring-boot
說明SOFABoot Core 工程是沒有頁面的工程,因此無法在本地進行效果預覽。但可以通過
http://localhost:8080/actuator/readiness
進行健康檢查。如果 status 為 UP,表示創建成功。更多本地編譯運行 SOFABoot 工程的方法,請參閱 本地運行。
云端運行
引入中間件服務
在成功創建 SOFABoot 工程后,通過在主 pom 文件中引入 starter,即可實現使用中間件服務。
中間件服務類別,以及對應 starter 版本信息的說明,請參考 引入 SOFA 中間件。
對于各中間件服務的示例 demo,請參考對應產品的快速入門。