pandora-hsf-spring-boot-starter 与 spring boot 的集成

本文描述了使用 Spring Boot 的编程模型在 Pandora Boot 应用中使用 HSF

maven依赖

导入pandora-boot-starter-bom


    
        
            
            org.springframework.boot
            spring-boot-dependencies
            
            2.5.12
            pom
            import
        
        
            com.taobao.pandora
            pandora-boot-starter-bom
            2023-07-stable-hsf
            pom
            import
        
    

(注意不是/)下添加依赖(无须写版本):


    com.alibaba.boot
    pandora-hsf-spring-boot-starter

全局配置

在 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容器中,

你可能感兴趣的:(spring,boot,java,数据库)