springboot集成dubbo生产者&消费者方法
1. pom.xml添加maven依赖
<!--spring-boot-starter-dubbo--> <dependency> <groupId>com.gitee.reger</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.1.1</version> </dependency> <!-- 引入zookeeper,去除其中的log4j,否则会因为日志原因导致堆栈溢出 --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.10</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <!--Dubbo的API--> <dependency> <groupId>com.test</groupId> <artifactId>test-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
2. application.yml增加dubbo配置信息
spring:
dubbo:
application:
name: demo-consumer
base-package: com.test.api # dubbo服务发布者所在的包
registry:
address: 127.0.0.1 # zookeeper注册中心的地址
port: 2181 # zookeeper注册中心的端口
protocol: zookeeper
register: true
protocol:
name: dubbo
port: 20880
accesslog: true
provider:
retries: 1
delay: -1
3. 启动类增加Dubbo注解
@SpringBootApplication @EnableDubbo public class DemoApplication {
public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
4. 生产者service接口定义
package com.demo.api; public interface TestServiceApi { /** * 输出问候 */ void sayHello(); }
5. 生产者接口实现(注意@Service的包路径是dubbo的包路径, 不是Spring的)
package com.demo.api.impl; import com.alibaba.dubbo.config.annotation.Service; @Service public class TestServiceApiImpl implements TestServiceApi { /** * 输出问候 */ @Override
public void sayHello() { return "Hello world!"; } }
6. 消费者调用示例
import com.alibaba.dubbo.config.annotation.Reference;
import com.demo.api.TestServiceApi;
@Reference
private TestServiceApi testServiceApi;
public void hello() {
String result = testServiceApi.sayHello();
System.out.println("result = " + result);
}
作者:小马哥的春天
-------------------------------------------
个性签名:把所有的春天都揉进代码里~
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!