玩转Spring Boot 集成Dubbo

使用Spring Boot 与Dubbo集成,这里我之前尝试了使用注解的方式,简单的使用注解注册服务其实是没有问题的,但是当你涉及到使用注解的时候在服务里面引用事务,注入其他对象的时候,会有一些问题。于是我就果断放弃了注解了,使用的是XML,这里可能介绍的是Dubbo,但是如果使用Dubbox的话,基本上是兼容的。接下来,将说说使用XML的方式与Spring Boot在一起开发。
1.创建工程在pom.xml中加入依赖

创建工程名为: (1)springboot-dubbo-provide (2)springboot-dubbo-api (3)springboot-dubbo-consume springboot-dubbo-api工程主要是放一些service接口,用于提供给消费者使用 。springboot-dubbo-provide工程用于提供服务。 springboot-dubbo-consume工程为消费者。在springboot-dubbo-provide工程中打开pom.xml加入以下依赖,完整代码如下:
[html] view plain copy

4.0.0
com.chengli
springboot-dubbo-provide
0.0.1-SNAPSHOT
jar
springboot-dubbo-provide
http://maven.apache.org

org.springframework.boot
spring-boot-starter-parent
1.4.3.RELEASE

UTF-8
1.8
2.5.3
3.4.6
0.1

com.chengli
springboot-dubbo-api
0.0.1-SNAPSHOT

org.springframework.boot
spring-boot-starter

com.alibaba
dubbo

org.springframework
spring

${com.alibaba.dubbo.version}

org.apache.zookeeper
zookeeper
${org.apache.zookeeper.version}

com.github.sgroschupf
zkclient
${com.github.sgroschupf.zkclient.version}

org.springframework.boot
spring-boot-maven-plugin

打开springboot-dubbo-consume工程,在pom.xml中加入以下依赖,完整代码如下:
[html] view plain copy

4.0.0
com.chengli
springboot-dubbo-consume
0.0.1-SNAPSHOT
jar
springboot-dubbo-consume
http://maven.apache.org

org.springframework.boot
spring-boot-starter-parent
1.4.3.RELEASE

UTF-8
1.8
2.5.3
3.4.6
0.1

com.chengli
springboot-dubbo-api
0.0.1-SNAPSHOT

org.springframework.boot
spring-boot-starter-web

com.alibaba
dubbo

org.springframework
spring

${com.alibaba.dubbo.version}

org.apache.zookeeper
zookeeper
${org.apache.zookeeper.version}

com.github.sgroschupf
zkclient
${com.github.sgroschupf.zkclient.version}

org.springframework.boot
spring-boot-configuration-processor
true

org.springframework.boot
spring-boot-maven-plugin

2.Dubbo配置

2.1springboot-dubbo-provide服务提供者

(1)在springboot-dubbo-provide项目中创建入口启动类MainConfig,完整代码如下:
[java] view plain copy
package com.chengli.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainConfig {
public static void main(String[] args) {
SpringApplication.run(MainConfig.class, args);
try {
System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
}
}

(2)创建Dubbo配置类
[java] view plain copy
package com.chengli.springboot.dubbo;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:dubbo/dubbo.properties")
@ImportResource({ "classpath:dubbo/*.xml" })
public class DubboConfig {

}

(3)创建Dubbo配置文件 在src/main/resources下新建文件夹dubbo,并加入以下配置: dubbo-provider.xml内容如下:
[html] view plain copy

注意:这里我发布的example服务是示例,具体的根据实际修改

(4)创建dubbo.properties
[html] view plain copy
#应用名称
dubbo.application.name=example-provider
#注册中心类型
dubbo.registry.protocol=zookeeper
#注册中心地址
dubbo.registry.address=127.0.0.1:2181
#暴露服务方式
dubbo.protocol.name=dubbo
#暴露服务端口
dubbo.protocol.port=20880

2.2springboot-dubbo-consume服务消费者

(1)创建入口启动类MainConfig
[java] view plain copy
package com.chengli.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainConfig {
public static void main(String[] args) {
SpringApplication.run(MainConfig.class, args);
}
}

(2)创建Dubbo配置类
[java] view plain copy
package com.chengli.springboot.dubbo;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:dubbo/dubbo.properties")
@ImportResource({ "classpath:dubbo/*.xml" })
public class DubboConfig {

}

(3)创建Dubbo配置文件 在src/main/resources下新建文件夹dubbo,并加入以下配置: dubbo-consume.xml内容如下:
[html] view plain copy

(4)创建dubbo.properties
[html] view plain copy
#应用名称
dubbo.application.name=example-consume
#注册中心类型
dubbo.registry.protocol=zookeeper
#注册中心地址
dubbo.registry.address=127.0.0.1:2181

到这里基本上就已经可以了,不过测试类的代码我就不贴上来了。只要在API中定义接口实现即可。使用Spring Boot 与Dubbo集成的时候,需要注意的是,不要使用Spring Boot提供的devtools热启动,因为devtools提供了两个ClassLoader,加载策略问题导致出现错误,无法启动。如果开发中需要热加载,那么使用Spring 提供的springloaded。
有兴趣的朋友可以加群探讨相互学习:

时间: 2024-11-05 17:16:13

玩转Spring Boot 集成Dubbo的相关文章

spring boot 集成 dubbo 企业完整版

一.什么是Spring Boot ? 现阶段的 Spring Boot 可谓是太火了,为什么呢?因为使用方便.配置简洁.上手快速,那么它是什么?从官网上我们可以看到,它是 Spring 开源组织下的一个子项目,主要简化了 Spring 繁重的配置,而且 Spring Boot 内嵌了各种 Servlet 容器,如:Tomcat.Jetty 等 官方网站:http://projects.spring.io/spring-boot/ GitHub源码:https://github.com/sprin

spring boot集成dubbo

spring-boot-start-dubbo spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序.使dubbo开发变得如此简单. 如何使用 1. clone 代码(可选,已经发布到中央仓库,可以直接依赖中央仓库的稳定版本) git clone [email protected]:teaey/spring-boot-starter-dubbo.git 2. 编译安装(可选) cd spring-boot-starter-dubbo mvn

Spring boot 集成Dubbo简单版,准备工作,

一.GitHub上找寻Dubbo资源 阿里巴巴在其GitHub上已经写好一个Github案例所以我们只要进入其Git上就可以看到和clone这个项目 二.阿里巴巴GitHub使用 https://github.com/alibaba      首页      然后再搜索框输入,boot,就会找到springboot,如图      点开红圈部分,就可以看到其使用的方法 原文地址:https://www.cnblogs.com/liuyangfirst/p/9311502.html

玩转spring boot——war部署

前言 之前部署spring boot应用是通过直接输入命令“java -jar”来实现的.而有些情况,由于部署环境的制约,只能把项目从jar转换成war才能部署,如新浪云sae的java环境容器.那怎样转换成war项目呢? 其实非常简单,只需要App类继承SpringBootServletInitializer,并重写“protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)” 方法即可 pack

玩转spring boot——websocket

前言 QQ这类即时通讯工具多数是以桌面应用的方式存在.在没有websocket出现之前,如果开发一个网页版的即时通讯应用,则需要定时刷新页面或定时调用ajax请求,这无疑会加大服务器的负载和增加了客户端的流量.而websocket的出现,则完美的解决了这些问题. spring boot对websocket进行了封装,这对实现一个websocket网页即时通讯应用来说,变得非常简单. 一.准备工作 pom.xml引入 <dependency> <groupId>org.springf

玩转spring boot——开篇

很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我个人认为是非常一般.如果单纯从技术来说,其实有工作3年的工作经验的人技术就已经很好了,后面工作时间是为了增加经验和对编程的理解.随着工作时间的增加,就会对一个技术有更深层次的理解,反而发现自己需要学更多的新.并觉得自己什么都不会.什么都不懂,还需要不停的学习和提高,并觉得时间更本不够用.自己唯一的收

玩转spring boot——properties配置

前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连接,若有一处配错或遗漏,就会带来不可挽回的损失.正因为这样,spring boot给出了非常理想的解决方案——application.properties.见application-properties的官方文档:http://docs.spring.io/spring-boot/docs/curr

玩转spring boot——结合AngularJs和JDBC

参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `t_order` -- ---------------------------- DROP TABLE IF EXISTS `t_order`; CREAT

170711、spring boot 集成shiro

这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security.Apache Shiro等安全框架,但是由于Spring Security过于庞大和复杂,大多数公司会选择Apache Shiro来使用,这篇文章会先介绍一下Apache Shiro,在结合Spring Boot给出使用案例. Apache Shiro What is Apache Shiro?