springboot整合dubbo

1、创建三个工程:api(jar)、service(jar)、test(war)。

2、img-api:

package com.demo.service;import java.util.List;
import com.demo.module.Img;public interface ImgService {List<Img> selectAll();}

3、img-service:

       

首先pom加上依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.demo</groupId><artifactId>img-service</artifactId><version>0.0.1-SNAPSHOT</version><!-- springBoot --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.1.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- api --><dependency><groupId>com.demo</groupId><artifactId>img-api</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><!-- dubbo --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency></dependencies></project>

  实现层:


package com.demo.serviceImpl;import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.demo.mapper.ImgMapper;
import com.demo.module.Img;
import com.demo.service.ImgService;@Service("imgService")
public class ImgServiceImpl implements ImgService{@Autowiredprivate ImgMapper imgMapper;@Overridepublic List<Img> selectAll() {		return imgMapper.selectAll();}}

  properties配置数据库和Mybatis:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/aaa?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=wtyymybatis.mapper-locations=classpath*:mapper/*Mapper.xml#spring.dubbo.application.name=img-service
#spring.dubbo.registry.address=zookeeper://127.0.0.1
#spring.dubbo.registry.port=2181
#spring.dubbo.base-package=com.demo.serviceImpl
#spring.dubbo.protocol.name=dubbo
server.port=8081

  dubbo配置文件provider.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 服务应用名称 --><dubbo:application name="img-service"/><!-- 使用zookeeper做为注册中心 --><dubbo:registry  protocol="zookeeper" address="zookeeper://127.0.0.1:2181"  register="false"/><!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> --><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20881" /><!-- ref中的值要跟服务实现类中的@Server的值一致 --><dubbo:service interface="com.demo.service.ImgService" ref="imgService"></dubbo:service>
</beans>

  启动类:


package com.demo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubboConfig;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;@SpringBootApplication@MapperScan("com.demo.mapper")@ImportResource("classpath:provider.xml")
public class ServiceStart {public static void main(String[] args) {SpringApplication.run(ServiceStart.class, args);}}

4、img-test应用:

    

  添加pom依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.demo</groupId><artifactId>img-test</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><!-- springBoot --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.1.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- api --><dependency><groupId>com.demo</groupId><artifactId>img-api</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- dubbo --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency></dependencies></project>

  properties配置文件:

#spring.dubbo.application.name=img-test
#spring.dubbo.registry.address=zookeeper://127.0.0.1
#spring.dubbo.registry.port=2181
#spring.dubbo.base-package=com.demo.service
#spring.dubbo.protocol.name=dubbo
server.port=8888

配置port是防止先启动service再启动rest出现端口占用问题,但有时候只配port会报错:

解决方法是加上数据库的配置(虽然没有用,但是不报错了):

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/aaa?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=wtyy

 dubbo配置文件consumer.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><dubbo:application name="img-test"></dubbo:application><!-- zookeeper作为注册中心 --><dubbo:registry  protocol="zookeeper" address="zookeeper://127.0.0.1:2181" /><!-- 生成远程服务代理 --><dubbo:reference interface="com.demo.service.ImgService" id="imgService"  url="dubbo://127.0.0.1:20881"/>
</beans>

  启动类:


package com.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubboConfig;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;@SpringBootApplication@EnableDubboConfiguration@ImportResource("classpath:consumer.xml")
public class RestStart {public static void main(String[] args) {SpringApplication.run(RestStart.class, args);}}

先启动service,再启动test,运行如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/322826.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CodeWave智能开发平台--03--目标:应用创建--02数据模型设计

摘要 本文是网易数帆CodeWave智能开发平台系列的第05篇&#xff0c;主要介绍了基于CodeWave平台文档的新手入门进行学习&#xff0c;实现一个完整的应用&#xff0c;本文主要完成数据模型设计 CodeWave智能开发平台的05次接触 CodeWave参考资源 网易数帆CodeWave开发者社区…

Docker 存储卷管理

一、存储卷简介 存储卷是一种方便、灵活、高效的Docker容器内数据存储方式。存储卷可以在容器内的不同进程间共享数据&#xff0c;并且可以在容器之间共享和重用。 二、存储卷的优点 可以在容器之间共享和重用&#xff0c;避免了在不同容器之间复制数据的繁琐。对数据卷的修…

QT_02 窗口属性、信号槽机制

QT - 窗口属性、信号槽机制 1. 设置窗口属性 窗口设置 1,标题 2,大小 3,固定大小 4,设置图标在 widget.cpp 文件中&#xff1a; //设置窗口大小,此时窗口是可以拉大拉小的 //1参:宽度 //2参:高度 this->resize(800, 600); //设置窗口标题 this->setWindowTitle("…

出个花活:出街&秀场丨当维乐VELO遇上英伦时尚之都

到底是谁还没有看过我们维乐坐垫今年的新花活呀&#xff0c;身边好多从前不爱运动的朋友&#xff0c;如今也沉迷上了公路车。我相信原因一定是由于对产品设计有着更高的要求&#xff0c;对于审美有着越来越高的追求&#xff0c;也是因为此大多数朋友最终都选择了维乐专业坐垫&a…

自定义页面,落地页面自由搭配

自定义页面 路径 应用 >> 新增自定义页面 功能简介 应用内新增「自定义页面」。 自定义页面是一个可以自由配置的落地页面&#xff0c;支持通过不同的入口设置连接到不同的链接地址&#xff0c;使得不同的应用资源可以根据业务场景化的展示。 使用场景&#xff1a; 一…

打造强大的Android C++工程

theme: cyanosis 好久没有写博客了&#xff0c;最近一直在做项目重构&#xff0c;动刀之深&#xff0c;让我无暇其他。今天终于告一段落了&#xff0c;就总结一下前段时间学习C时的一些开发心得吧。 因为Android系统&#x1f236;️C 语言开发的原因&#xff0c;每个 Android…

Flutter 混合开发 - aar打包

背景 项目接入 Flutter 后有两种方式&#xff0c;一种是 module 引入开发&#xff0c;一种是 aar 依赖开发。当前项目中在 Debug 阶段为了方便调试采用 module 开发&#xff0c;在发版时&#xff08;即 Release 阶段&#xff09;采用 aar 依赖引入。为了配合这种模式就需要在 …

【2023年度技术盘点】「年终盘点后端系列」探索服务架构体系的技术风向,构建微服务核心能力(升级版)

探索服务架构体系的技术风向&#xff0c;构建微服务核心能力 文章导航大纲前提背景架构未来的风向云原生化的微服务架构&#xff08;未来软件架构&#xff09;历史历代服务架构路径新时代架构预测服务架构方向—云原生化微服务云原生化微服务提升了哪些方面 云原生化微服务架构…

XV4001BC (数字输出) 车载用

XV4001BC、XV4001BD、XV4001KC和XV4001KD是车载用SPI/I2C输出接口&#xff0c;支持角速度输出、温度传感器输出以及20度倾斜实现。这些接口可适应各种汽车导航和通讯系统&#xff0c;符合AEC-Q200标准 SPI / I2C 输出接口角速度输出(16bit)、温度传感器输出(11bit)20度倾斜实现…

OpenAI ChatGPT-4开发笔记2024-04:Chat之Tool之2:multiple functions

从程序员到ai Expert 1 设定目标2 自定义function,3个3 接口。自定义function--->ChatGPT4 define function to call ChatGPT5 发起首次请求&#xff0c;告诉gpt要做什么&#xff0c;已经有哪些函数可以调动6 大结局7 参考资料 上一篇解决了调用一个函数的问题。这一篇扩展为…

钉钉审批流程解读

组织机构 部门 部门可以创建下级部门部门可以设置部门主管&#xff0c;可以是多人部门可以默认构建&#xff0c;沟通群可以设置部门信息&#xff0c;比如电话、简介可以设置部门的可见性&#xff0c;比如隐藏本部门&#xff0c;本部门将不会在组织机构、搜索&#xff0c;个人…

Activiti7官方在线流程设计器下载和部署

文章目录 一、流程设计器下载二、流程设计器简单运行三、流程设计器简单使用四、流程设计器持久化持久化会遇到的常见错误 五、流程设计器汉化说明菜单汉化操作汉化 参考文档 一、流程设计器下载 官网下载地址&#xff1a;https://www.activiti.org/get-started 点击直接获取官…