243
iPhone_iPad_Mac_手机_平板_苹果apple
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-阿里云