243
微信
EDAS 中的 Spring Boot 開發__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
本文主要針對使用 Spring Boot 開發應用的用戶,介紹如何快速讓 HSF 在 Spring Boot 中運行,並提供了完整的 Demo下載。
開發在 EDAS 中運行的 Spring Boot 項目
開發 Spring Boot 項目需要使用 Servlet 3.0 及以上版本,同時保持生成環境和 Spring Boot 編譯環境 JDK 版本一致。具體開發步驟參見下文。
創建 Web 項目,引入 Spring Boot 依賴包。
pom.xml
<!-- 打包方式由JAR 改為 WAR -->
<packaging>war</packaging>
<!-- 添加 spring-boot-starter-parent 依賴 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<!-- Spring Boot 依賴,這裏必須排除嵌入式的 Tomcat ,否則在 Tomcat4E 會出現問題;若使用 Main 函數啟動,則不用排除 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 添加 Spring Boot 插件 -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
注意:
在 pom.xml 裏麵引入的 Spring Boot 依賴,若要以 WAR 包形式在 Tomcat 中運行,需要排除 spring-boot-starter-web 嵌入式 Tomcat 依賴,否則會和 Tomcat 默認的 lib 內容形成衝突,導致項目無法啟動。如果在 Main 函數中啟動則不用排除嵌入式 Tomcat,但是在打包發布時,請一定記住需要排除。
創建 ServletInitializer 類,繼承 SpringBootServletInitializer。
類似初始化 Spring 上下文,標記該項目打包成 WAR 項目在 Tomcat 中運行。
繼承 SpringBootServletInitializer 類,實現 configure 方法 ServletInitializer.class。
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(StartupDemoApplication.class);
}
}
創建 Spring Boot 啟動類。
類名:StartupDemoApplication.class
@SpringBootApplication
public class StartupDemoApplication {
public static void main(String[] args) {
//啟動服務
SpringApplication.run(StartupDemoApplication.class, args);
}
}
刪除 webapp 下麵的 web.xml 文件。
若該文件存在,在容器加載 Web 的時候,就會直接加載該配置文件,但是由於該配置文件沒有做任何配置,因此會造成 Spring Boot 加載不成功。
排除方式:
若發現發布在 EDAS 中的 WAR 沒有執行您自己的代碼,那麼有可能就是該問題導致,請及時檢查是否存在 web.xml 文件。
打包 WAR,上傳 EDAS 啟動即可。
如果測試階段,需要直接在 Main 方法中運行,請把 pom.xml 文件中的 spring-boot-starter-tomcat 排除取消。
Spring Boot 結合 HSF 開發
添加 HSF 服務提供者配置文件(hsf-provider-beans.xml)。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns:hsf="https://www.taobao.com/hsf" xmlns="https://www.springframework.org/schema/beans"
xsi:schemaLocation="https://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans-2.5.xsd
https://www.taobao.com/hsf
https://www.taobao.com/hsf/hsf.xsd"
default-autowire="byName">
<!-- 服務處理 bean -->
<bean id="memberServiceImpl"
class="com.alibaba.edas.springboot.service.impl.MemberServiceImpl" />
<!-- 提供一個 HSF 服務示例 -->
<hsf:provider id="memberService"
interface="com.alibaba.edas.springboot.service.MemberService" ref="memberServiceImpl" group="test" />
</beans>
導入 HSF 服務提供者配置。
@ImportResource(locations={"classpath:hsf-provider-beans.xml"})
@SpringBootApplication
public class StartupDemoApplication {
public static void main(String[] args) {
SpringApplication.run(StartupDemoApplication.class, args);
}
}
打包上傳 EDAS ,具體請參考服務上線。
添加 HSF 消費者配置文件(hsf-consumer-beans.xml)。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns:hsf="https://www.taobao.com/hsf" xmlns="https://www.springframework.org/schema/beans"
xsi:schemaLocation="https://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans-2.5.xsd
https://www.taobao.com/hsf
https://www.taobao.com/hsf/hsf.xsd"
default-autowire="byName">
<!-- 消費一個 HSF 服務示例 -->
<hsf:consumer id="memberService" interface="com.alibaba.edas.springboot.service.MemberService" group="test" />
</beans>
導入 HSF 消費者配置。
@ImportResource(locations="classpath:hsf-consumer-beans.xml")
@SpringBootApplication
public class StartupDemoApplication {
public static void main(String[] args) {
SpringApplication.run(StartupDemoApplication.class, args);
}
}
打包上傳 EDAS ,具體請參考服務上線。
最後更新:2016-11-23 16:04:20
上一篇:
HSF 單元測試__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
下一篇:
服務打包__線上服務發布_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
流量控製策略__使用手冊(開放API)_API 網關-阿裏雲
查詢鏡像商品類目列表__API參考_雲市場-阿裏雲
查詢策略下綁定的API__流量控製相關接口_API_API 網關-阿裏雲
郵箱賬號凍結無法登陸,怎麼辦?__管理員功能_產品使用問題_企業郵箱-阿裏雲
查詢直播流的幀率和碼率__直播流操作接口_API 手冊_CDN-阿裏雲
添加和驗證壓測目標__環境管理_Lite用戶使用手冊_性能測試-阿裏雲
修改監控行為__監控管理_API 參考_雲數據庫 RDS 版-阿裏雲
ALIYUN::RAM::Group__資源列表_資源編排-阿裏雲
瀏覽作業__作業管理_Console參考手冊_數據集成-阿裏雲
雲郵箱綁定域名注意事項__購買續費_購買指導_企業郵箱-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲