多平台统一管理软件接口,如何实现多平台统一管理软件接口
391
2023-01-20
springboot集成dubbo注解版的示例代码
工作中用springboot搭建项目,用dubbo做远程调用。springboot提倡注解配置和java配置,本文是基于dubbo最新版本2.6.3,使用注解方式的示例。
本文假定你已经有springboot和dubbo的使用经验。
dubbo简介
dubbo是阿里巴巴开源的分布式服务框架,一般使用dubbo的RPC调用。但2016年停止维护,现在使用的2.8.4版本其实是当当维护的dubbox。2017年8月阿里又重启维护dubbo,并从2.5.7版本开始支持注解配置。
准备
此示例使用gradle构建,关于gradle的安装配置,请参考官方文档。
zookeeper作为dubbo服务发现的基础组件,关于zookeeper的安装启动,请参考官方文档。
项目结构如下
springboot-dubbo
├─settings.gradle
├─build.gradle
├─springboot-dubbo-api
│ │─build.gradle
│ └─src
│ └─main
│ └─java
│ └─org
│ └─aaron
│ └─springboot
│ └─dubbo
│ └─api
│ DemoService.java
├─springboot-dubbo-consumer
│ │─build.gradle
│ └─src
│ └─main
│ ├─java
│ │ └─org
│ │ └─aaron
│ │ └─springboot
│ │ └─dubbo
│ │ └─consumer
│ │ DemoController.java
│ │ DubboConfiguration.java
│ │ DubboConsumerApplication.java
│ │
│ └─resources
│ application.yml
└─springboot-dubbo-provider
│─build.gradle
└─src
└─main
├─java
│ └─org
│ └─aaron
│ └─springboot
│ └─dubbo
│ └─provider
│ DemoServiceImpl.java
│ DubboConfiguration.java
│ DubboProviderApplication.java
│
└─resources
application.yml
引入外部依赖
compile('com.alibaba:dubbo:2.6.3')
compile('org.apache.zookeeper:zookeeper:3.4.9')
compile('org.apache.curator:curator-framework:4.0.0')
compile('org.springframework.boot:spring-boot-starter-web')
配置
1.生产者dubbo配置
@Configuration
public class DubboConfiguration {
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
registryConfig.setClient("curator");
return registryConfig;
}
@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("sprintboot-dubbo-provider");
return applicationConfig;
}
@Bean
public ProtocolConfig protocolConfig() {
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setPort(12021);
protocolConfig.setName("dubbo");
return protocolConfig;
}
}
2.消费者dubbo配置
@Configuration
public class DubboConfiguration {
@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
registryConfig.setClient("curator");
return registryConfig;
}
@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("sprintboot-dubbo-consumber");
return applicationConfig;
}
@Bean
public ConsumerConfig consumerConfig() {
ConsumerConfig consumerConfig = new ConsumerConfig();
consumerConfig.setTimeout(3000);
return consumerConfig;
}
}
3.定义接口
public interface DemoService {
String sayHello();
}
4.生产者实现接口
import com.alibaba.dubbo.config.annotation.Service;
@Component
@Service(interfaceClass = DemoService.class, version = "1.0")
public class DemoServiceImpl implements DemoService {
@Override
public String sayHello() {
return "Hello Springboot Dubbo";
}
}
5.消费者调用接口
import com.alibaba.dubbo.config.annotation.Reference;
@RestController
public class DemoController {
@Reference(interfaceClass = DemoService.class, version = "1.0")
private DemoService demoService;
@RequestMapping("/hello")
public String sayHello() {
return demoService.sayHello();
}
}
启动
本地启动zookeeper
依次启动springboot-dubbo-provider,springboot-dubbo-cwXCXdmqmsonsumer
浏览器访问 localhost:8080/hello
看到返回'Hello Springboot Dubbo' 即表示调用成功
其他
示例源码(github)
Dubbo注解配置
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~