spring boot配置dubbo(properties)
来源:互联网 发布:东方永夜抄 mac 编辑:程序博客网 时间:2024/05/19 23:17
spring boot与dubbo配置(properties)
dubbo和zookeeper配合使用,具体的它们之间的配置这里不说了。
一、spring boot与dubbo配置有两种方式:
1)spring boot在自己的配置文件application.properties
配置dubbo。(本篇主要说这个)
2)spring boot结合传统spring dubbo配置文件xml形式。(请看下一篇文章)
二、本篇主要说在自己配置文件里配置dubbo的步骤:
1)dubbo接口发布者配置
1.首先需要引入如下依赖:
<!-- Spring Boot Dubbo 依赖--><dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.0.0</version></dependency>
2.在application.properties
文件里配置如下内容:
#dubbo提供者的别名,只是个标识spring.dubbo.application.name=provider#zk地址spring.dubbo.registry.address=zookeeper://192.168.1.160:2181#dubbo协议spring.dubbo.protocol.name=dubbo#duboo端口号spring.dubbo.protocol.port=20880#这是你要发布到dubbo的接口所在包位置spring.dubbo.scan=test.spring.dubboService
3.创建一个要发布的dubbo接口和其实现类,具体如下:
package test.spring.dubboService;public interface TestDubboService { public String getName(String name); }
package test.spring.dubboService.impl;import com.alibaba.dubbo.config.annotation.Service;import test.spring.dubboService.TestDubboService;@Servicepublic class TestDubboServiceImpl implements TestDubboService { @Override public String getName(String name) { // TODO Auto-generated method stub return "姓名:"+name; }}
接口上什么都不加,但是其实现类上要加上一个注解@Service
注意该注解是com.alibaba.dubbo.config.annotation.Service
如果引入错误,发布也不会成功的。
4.如果发布的接口需要加入版本号,就可以写为这样@Service(version="1.0.0.1")
具体的包位置接口请看下图:
我在前几篇里说过,spring boot默认扫描是从启动类开始依次向下级包扫描,如果被调用方在调用的时候还没有初始化,就肯定会找不到的,上图的接口为什么会放在实现类的上层,应该就能理解了吧。
到此配置dubbo的发布方就完成了,直接运行启动类,查看dubbo接口的发布情况。如下:
2)dubbo接口消费者配置
1、首先依然要引入spring boot的依赖:
<!-- Spring Boot Dubbo 依赖--><dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>1.0.0</version></dependency>
2.在application.properties
文件里填些dubbo的配置:
spring.dubbo.application.name=consumer-1#zk地址spring.dubbo.registry.address=zookeeper://192.168.1.160:2181#dubbo协议spring.dubbo.protocol.name=dubbo#duboo端口号spring.dubbo.protocol.port=20880#这是要扫描使用的dubbo接口所在包位置spring.dubbo.scan=test.spring.dubboService
3.由于消费者和发布者不在同一项目里,上边的test.spring.dubboService
包里,已发布接口TestDubboService
也需要复制一份到消费者这边,并且包结构都必须与发布的一样。具体请看下图:
4.最后在调用的地方,我是在TestController
引入的接口,在引入的地方需要加一个注解,该注解为alibaba的 @Reference
,同理如果想加入版本号,则加上version即可,值要与发布接口的版本号对应。例如:@Reference(version="1.0.0.1")
,具体如下:
package test.spring.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.alibaba.dubbo.config.annotation.Reference;import test.spring.dubboService.TestDubboService;@RestControllerpublic class TestController { @Reference TestDubboService testDubboService; @RequestMapping(value="abc/akf",method=RequestMethod.GET) public String abc(String name){ return testDubboService.getName(name); }}
5.依次启动dubbo发布方项目和调用方项目。访问以上controller,如果这么运行下来,不出意外的话,就会报空指针异常,发布的这个接口在调用方调不到,修改如下即可。
修改后的项目结构,如下:
也就是说,需要把controller的位置放到dubboService下一级,这里就算你在引入的地方加上@Lazy
延迟加载注解也调用不到,我反正都是调整包结构解决的空指针异常。
6.再次启动项目,访问controller,就会访问成功的:
下一篇 写spring boot与传统的dubbo xml配置方式
阅读全文
5 0
- spring boot配置dubbo(properties)
- Spring Boot Dubbo applications.properties 配置清单
- Spring Boot配置Dubbo
- spring boot dubbo 配置
- spring-boot PROPERTIES 配置
- spring boot配置dubbo(XML)
- spring boot application.properties 配置
- spring-boot properties 配置信息
- 《spring-boot学习》-13-spring boot application properties配置详解
- spring boot application properties配置详解
- spring boot application.properties文件外部配置
- spring boot application properties配置详解
- spring boot application.properties配置详解
- spring boot application properties配置详解
- spring boot(5)-properties参数配置
- spring boot application.properties 全部配置属性
- Spring-boot application.properties默认配置
- spring boot application properties配置详解
- IOS 视屏开发之AVPlayer的基本使用
- 软件架构选择与架构选择
- 【论文笔记】物体检测与分割系列 DeepMask
- 关于java中子父类赋值的问题
- 学习Qt状态机框架时遇到的一个bug
- spring boot配置dubbo(properties)
- openwhish app readme
- 有时候开发listView需要默认显示到最后一条数据
- USB3.0
- 算法的时间复杂度
- sed命令详解
- BP神经网络公式推导
- BZOJ4381: [POI2015]Odwiedziny 分块 长链剖分
- Java数据结构与算法---冒泡排序