本文主要是介绍这特么是啥系列之----HSF求求你别秀了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如何发布HSF服务
感觉这个hsf需要pandora环境,所以...先导依赖
<dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.9.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.taobao.pandora</groupId><artifactId>pandora-boot-starter-bom</artifactId><version>2018-01-release</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
<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.DAILY
spring.hsf.timeout=3000
@SpringBootApplicationpublic class DemoApplication{public static void main(String[] args) {PandoraBootstrap.run(args);SpringApplication.run(DemoApplication.class, args);PandoraBootstrap.markStartupAndWait();}
}
@HSFProvider
注意是
com.alibaba.boot.hsf.annotation.HSFProvider
,不是com.taobao.hsf.app.spring.util.annotation.HSFProvider
编写你的HSF服务, 只需要在要发布的服务实现上添加 @HSFProvider
, 其中 serviceInterface
是要发布服务的接口:
@HSFProvider(serviceInterface = DemoService.class)
public class DemoServiceImpl implements DemoService{}
可以使用 @HSFProvider
为特定的服务覆盖全局默认配置, 如:
@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{}
注意:spring boot默认只扫描main函数所在的package。如果服务是在其它的package里,需要配置
@ComponentScan
。
@ComponentScan(basePackages = "com.taobao.mypackage")
然后呢...就是消费这个服务了
启动类要配置注解..
@SpringBootApplication
使用传统的 XML 方式装配 HSF Spring Bean。
创建一个 Spring 配置文件,如 src/main/resources/hsf-consumer.xml
,表示要引用相关的hsf的服务。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="helloWorldConsumer" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init"><property name="interfaceName" value="com.acme.DemoService"/><property name="version" value="1.0.0.daily"/><property name="group" value="HSF"/></bean>
</beans>
在Spring Boot Application类上添加 @ImportResource
导入自定义的 hsf-consumer.xml 文件,这样spring hsf服务对应的bean就会被初始化.
@ImportResource({"classpath:hsf-consumer.xml"})
@SpringBootApplication
public class DemoApplication {}
接下来就是在代码中直接引入HSF服务的接口类,代码如下:
@Autowired
DemoService demoService;
嗯嗯嗯,会发布服务,消费服务就行,不会再看api
这篇关于这特么是啥系列之----HSF求求你别秀了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!