本文描述了使用 Spring Boot 的编程模型在 Pandora Boot 应用中使用 HSF
maven依赖
导入pandora-boot-starter-bom
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<!-- http://gitlab.alibaba-inc.com/middleware-container/pandora-boot/wikis/spring-boot-2 -->
<version>2.5.12</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.taobao.pandora</groupId>
<artifactId>pandora-boot-starter-bom</artifactId>
<version>2023-07-stable-hsf</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在<dependencies>(注意不是<dependencyManagement>/<dependencies>)下添加依赖(无须写版本):
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>pandora-hsf-spring-boot-starter</artifactId>
</dependency>
全局配置
在 application.properties 添加所有 HSF的默认版本信息和客户端超时信息, 样例配置如下:
spring.hsf.group=HSF
spring.hsf.version=1.0.0
spring.hsf.timeout=3000
@HSFProvider
注意是
com.alibaba.boot.hsf.annotation.HSFProvider,不是com.taobao.hsf.app.spring.util.annotation.HSFProvider
首先要编写服务提供者
只需要在发布的服务上添加@HSFProvider,其中DemoService是要发布的服务的接口,注意:注解是加在实现类的头上。
@HSFProvider(serviceInterface = DemoService.class)
public class DemoServiceImpl implements DemoService{}
还可以通过该注解为特定的服务设置配置,可以覆盖全局配置。
@HSFProvider(serviceInterface = DemoService.class, serviceGroup = "HSF", serviceVersion = "1.0.1", clientTimeout = 500)
public class DemoServiceImpl implements DemoService{}
@HSFProvider 中的 serviceGroup 和 serviceVersion 以及其他 String 类型的配置都可以支持 Spring 的 property placeholder, 如:
@HSFProvider(serviceInterface = DemoService.class, serviceGroup = "${service.group.name}")
public class DemoServiceImpl implements DemoService{}
注意:springboot默认只扫描main函数所在的package,如果服务在其他的package里,需要配置@componentScan
@ComponentScan(basePackages = "com.taobao.mypackage")
此前总结:和feign调用类似,但比feign更简洁,此处只需要在实现类上加注解,但是feign需要专门写feignclient,而且feign是针对controller写的,但是hsf是直接对实现类加注解。
假如我要调用其他的服务中的服务,我需要在目前的项目的启动类上加上@componentScan注解,这样才可以将对应服务的对象加载到我的ioc容器中

最低0.47元/天 解锁文章
1482





