网站项目需求,建设一个购物网站流程,网站制作流程图,南京制作网页公司上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤#xff0c;那种配置有很多的功能#xff08;比如超时时间、是否检查#xff09;等等#xff0c;配置起来也挺麻烦的#xff0c;而我们也习惯传统的那种XML形式的dubbo配置。
这一篇写的是spring…上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤那种配置有很多的功能比如超时时间、是否检查等等配置起来也挺麻烦的而我们也习惯传统的那种XML形式的dubbo配置。
这一篇写的是spring boot与传统的dubbo xml文件的结合。
一、dubbo发布方配置
1、首先引入依赖但是这些依赖就不是上一篇的那个spring boot dubbo的依赖而是dubbo自己的那几个依赖引错了会发布不成功的我是配置的如下 !-- 如果dubbo的配置来自于单独的xml文件不是来自于spring boot的application配置文件那么导入dubbo相关包必须单独导入不能用spring boot和dubbo的jar包--
dependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactIdversion3.4.8/versionexclusions!--如果你用的logback日志该包会引起jar包冲突--exclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/exclusion/exclusions
/dependency
dependencygroupIdcom.101tec/groupIdartifactIdzkclient/artifactIdversion0.3/version
/dependency
dependencygroupIdcom.alibaba/groupIdartifactIddubbo/artifactIdversion2.5.3/versionexclusionsexclusiongroupIdorg.springframework/groupIdartifactIdspring/artifactId/exclusion/exclusions
/dependency2.然后在src/main/resources下添加一个dubbo provider的配置文件dubbo-provider.xml 名字随便起内容如下: !-- 提供方应用名称信息这个相当于起一个名字我们dubbo管理页面比较清晰是哪个应用暴露出来的 --dubbo:application namedubbo-provider-qssj/!-- 使用zookeeper注册中心暴露服务地址 --dubbo:registry protocolzookeeper address192.168.1.160:2181 /dubbo:protocol namedubbo port31001 /dubbo:service interfacetest.spring.dubboService.TestDubboService reftestDubboService timeout1800000 version1.0.0.1/bean idtestDubboService classtest.spring.dubboService.impl.TestDubboServiceImpl/以上内容与传统的dubbo xml配置文件没什么区别可以从网上搜到。
3.然后也是需要在发布接口的实现类上加Service 注解但是这个注解就变成了org.springframework.stereotype.Service 。具体如下。
package test.spring.dubboService.impl;
import org.springframework.stereotype.Service;
import test.spring.dubboService.TestDubboService;Service
public class TestDubboServiceImpl implements TestDubboService {Overridepublic String getName(String name) {// TODO Auto-generated method stubreturn 姓名name;}
}4.最后启动类引入以下该dubbo-provider.xml 文件如下
package test.spring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;SpringBootApplication //spring boot启动必须引入的注解
ImportResource({classpath:dubbo-provider.xml})
public class SpringBootTest {public static void main(String[] args) {SpringApplication.run(SpringBootTest.class, args);}
}5.最后运行启动类就会在dubbo上看到该发布的接口。 6.发布方的最终项目结构如下 结构与上一篇那种springboot 的properties配置dubbo没什么区别。
二、调用方项目配置
1、依然是先引入依赖与上边发布方的依赖是一样的。
2、然后在src/main/resources下添加一个dubbo-consumer.xml 配置文件内容如下
!-- 消费方应用名用于计算依赖关系不是匹配条件不要与提供方一样 --
dubbo:application namedubbo-consumer-qssj /
dubbo:consumer timeout1800000 retries0 /
dubbo:registry protocolzookeeper address192.168.1.160:2181 /
dubbo:reference idtestDubboService interfacetest.spring.dubboService.TestDubboService checkfalse version1.0.0.1/3.然后复制一份test.spring.dubboService.TestDubboService 接口放到消费者这边如下 多说一句用这种方式配置controller的位置不需要比调用的dubbo接口位置低。
4.调用的地方加入Autowired 注解如下
package test.spring.dubboService.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import test.spring.dubboService.TestDubboService;
RestController
public class TestController {AutowiredTestDubboService testDubboService;RequestMapping(valueabc/akf,methodRequestMethod.GET)public String abc(String name){ return testDubboService.getName(name);}
}5.在启动类引入dubbo-consumer.xml 具体如下
package test.spring;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;SpringBootApplication //spring boot启动必须引入的注解
ImportResource({classpath:dubbo-consumer.xml})
public class SpringBootTest {public static void main(String[] args) {SpringApplication.run(SpringBootTest.class, args);}
}6.运行启动类访问controller则看到调用成功。 下一篇说下spring boot配置dubbo注意的问题。