使用php的大型网站,泰安 网站建设公司,网站pv uv 多少算好站,长春互联网公司哪里多spring boot与dubbo配置(properties)
dubbo和zookeeper配合使用#xff0c;具体的它们之间的配置这里不说了。 一、spring boot与dubbo配置有两种方式#xff1a;
1#xff09;spring boot在自己的配置文件application.properties 配置dubbo。#xff08;本篇主要说这个具体的它们之间的配置这里不说了。 一、spring boot与dubbo配置有两种方式
1spring boot在自己的配置文件application.properties 配置dubbo。本篇主要说这个 2spring boot结合传统spring dubbo配置文件xml形式。请看下一篇文章
二、本篇主要说在自己配置文件里配置dubbo的步骤
1)dubbo接口发布者配置
1.首先需要引入如下依赖 !-- Spring Boot Dubbo 依赖--
dependencygroupIdio.dubbo.springboot/groupIdartifactIdspring-boot-starter-dubbo/artifactIdversion1.0.0/version
/dependency2.在application.properties 文件里配置如下内容
#dubbo提供者的别名只是个标识
spring.dubbo.application.nameprovider(一般写自己的项目名称)
#zk地址
spring.dubbo.registry.addresszookeeper://192.168.1.160:2181
#dubbo协议
spring.dubbo.protocol.namedubbo
#duboo端口号
spring.dubbo.protocol.port20880
#这是你要发布到dubbo的接口所在包位置
spring.dubbo.scantest.spring.dubboService3.创建一个要发布的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;Service
public class TestDubboServiceImpl implements TestDubboService {Overridepublic String getName(String name) {// TODO Auto-generated method stubreturn 姓名name;}
}接口上什么都不加但是其实现类上要加上一个注解Service 注意该注解是com.alibaba.dubbo.config.annotation.Service 如果引入错误发布也不会成功的。
4.如果发布的接口需要加入版本号就可以写为这样Service(version1.0.0.1)
具体的包位置接口请看下图 我在前几篇里说过spring boot默认扫描是从启动类开始依次向下级包扫描如果被调用方在调用的时候还没有初始化就肯定会找不到的上图的接口为什么会放在实现类的上层应该就能理解了吧。
到此配置dubbo的发布方就完成了直接运行启动类查看dubbo接口的发布情况。如下 2)dubbo接口消费者配置
1、首先依然要引入spring boot的依赖 !-- Spring Boot Dubbo 依赖--
dependencygroupIdio.dubbo.springboot/groupIdartifactIdspring-boot-starter-dubbo/artifactIdversion1.0.0/version
/dependency2.在application.properties 文件里填些dubbo的配置
spring.dubbo.application.nameconsumer-1(一般写自己的项目名称)
#zk地址
spring.dubbo.registry.addresszookeeper://192.168.1.160:2181
#dubbo协议
spring.dubbo.protocol.namedubbo
#duboo端口号
spring.dubbo.protocol.port20880
#这是要扫描使用的dubbo接口所在包位置
spring.dubbo.scantest.spring.dubboService3.由于消费者和发布者不在同一项目里上边的test.spring.dubboService 包里已发布接口TestDubboService 也需要复制一份到消费者这边并且包结构都必须与发布的一样。
??注意上边这里我说的复制具体在项目开发里不会这么干的比如我们是这样来做的。 ??我们是项目里建了三个项目springboot-facade、springboot-rest、springboot-servicespringboot-facade里放了接口的结构即service和beanspringboot-rest项目和springboot-service项目分别引用springboot-facade项目将来就算别人来调用我们的接口只要引入一下springboot-facade包配置一下dubbo就可以了。 当然就算webservice那种远程调用也是需要通过wsdl去生成service结构在消费者这边。 关于单项目需要拷贝的话具体请看下图主要是提示一下复制的接口在项目所处的路径必须要与发布的路径相同
4.最后在调用的地方我是在TestController 引入的接口在引入的地方需要加一个注解该注解为alibaba的 Reference ,同理如果想加入版本号则加上version即可值要与发布接口的版本号对应。例如Reference(version1.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;RestController
RequestMapping(/springboot)
public class TestController {ReferenceTestDubboService testDubboService;RequestMapping(valueabc/akf,methodRequestMethod.GET)public String abc(String name){ return testDubboService.getName(name);}
}5.依次启动dubbo发布方项目和调用方项目。访问以上controller如果这么运行下来不出意外的话就会报空指针异常发布的这个接口在调用方调不到修改如下即可。
修改后的项目结构如下 也就是说需要把controller的位置放到dubboService下一级这里就算你在引入的地方加上Lazy 延迟加载注解也调用不到我反正都是调整包结构解决的空指针异常。
6.再次启动项目访问controller就会访问成功的 下一篇 写spring boot与传统的dubbo xml配置方式