`

Spring Boot中集成Dubbox

阅读更多

1、dubbox需要在本地install,地址https://github.com/dangdangdotcom/dubbox.git,使用版本为2.8.4

 

2、新建spring boot项目,版本为1.5.6.RELEASE

  •   创建maven模块

    spring-boot-dubbox-api:dubbo服务接口

    spring-boot-dubbox-provider:dubbo服务提供者

 

  •   引入dubbo配置

 

@Configuration
@ImportResource("classpath:dubbo/dubbo.xml")
public class PropertiesLoad {

}
 
   dubbo.xml具体配置如下

 

 

    <!-- dubbo扫描Service-->
    <dubbo:annotation package="org.spring.boot.dubbox.provider.service"/>

    <dubbo:application name="provider" owner="platin"/>

    <dubbo:registry protocol="zookeeper" address="zookeeper://localhost:2181" />
    <!--使用kyro序列化-->
    <dubbo:protocol name="dubbo" serialization="kryo"  port="20990"  />

    <!-- dobbox基于resteasy的REST接口发布,sever采用Tomcat -->
    <dubbo:protocol name="rest" port="8090"  server="tomcat" />

  • 发布服务
@Service//alibaba服务注解
@Path("user")//rest服务
//rest服务数据格式,类与方法同时指定,方法中的优先级高
@Produces({ "application/json; charset=UTF-8", "text/xml; charset=UTF-8" })
public class UserServiceImpl implements UserService {

	 private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
	
	@POST
	@Path("save")
	@Produces({ ContentType.APPLICATION_JSON_UTF_8 }) //dubbox封装的类型
	public WrappResult save() {
        //解决primitive类型不被JAXB序列化的问题
		return new WrappResult((int) (Math.random() * 10));
	}
	
	@GET
	@Path("{id : \\d+}")
	public User getUserById(@PathParam("id") Long id, @Context HttpServletRequest request) {
		logger.info("Client address is:{}", request.getRemoteAddr());
		User user = new User(1L, "SpringBoog-Dubbox",20);
    	return user;
	}
	
	@GET
	@Path("/xml/{id : \\d+}")
	@Produces(ContentType.TEXT_XML_UTF_8) //使用xml格式
	public User getUserByIdXml(@PathParam("id") Long id) {
		logger.info("Client address is:{}", RpcContext.getContext().getRemoteAddressString());
		User user = new User(10L, "Xml-Entity",20);
    	return user;
	}
}

 

3、Spring Boot启动类

 

@SpringBootApplication
public class ProviderApp {
	public static void main(String[] args) throws IOException {
		SpringApplication.run(ProviderApp.class, args);
	}
// 使用jetty加载
//	@Bean
//	public EmbeddedServletContainerFactory servletContainer() {
//		JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
//		return factory;
//	}

}

 

  • rest服务发布结果
main  INFO zookeeper.ZookeeperRegistry:  [DUBBO] Register: rest://10.*.*.*:8090/org.spring.boot.dubbox.api.UserService?anyhost=true……
main  INFO zookeeper.ZookeeperRegistry:  [DUBBO] Subscribe: provider://10*.*.*:8090/org.spring.boot.dubbox.api.UserService?anyhost=true&……
main  INFO zookeeper.ZookeeperRegistry:  [DUBBO] Notify urls for subscribe url provider://10.*.*.*:8090/org.spring.boot.dubbox.api.UserService?anyhost=true&……
  • rest服务验证  

    http://localhost:8090/user/1.xml

<user>
  <age>20</age>
  <id>1</id>
  <name>SpringBoog-Dubbox</name>
</user>

     http://localhost:8090/user/1.json

{  "id": 1,
  "name": "SpringBoog-Dubbox",
  "age": 20
}

 

 项目地址https://github.com/hjguang/spring-boot-dubbox

分享到:
评论

相关推荐

    基于Spring-boot和dubbox的API接口和后台管理系统.rar

    《构建基于Spring-boot和dubbox的API接口与后台管理系统》 在当今信息化时代,高效、稳定的后台管理系统是企业运营的核心。本项目采用Spring-boot和dubbox技术栈,旨在构建一套灵活、可扩展的API接口及后台管理系统...

    管理系统系列--基于Spring-boot和dubbox的API接口和后台管理系统.zip

    【标题】"管理系统系列--基于Spring-boot和dubbox的API接口和后台管理系统"涉及到的是一个使用现代Java技术栈构建的企业级应用。Spring-boot是核心框架,用于简化Spring应用程序的初始搭建以及开发过程,而dubbox是...

    java+基于Spring-boot和dubbox的API接口和后台管理系统.rar

    对于开发者来说,这个项目提供了实践Spring Boot和Dubbo集成的机会,可以了解如何在实际项目中使用这些技术,理解微服务架构的设计思想,以及如何通过API接口进行服务间的通信。此外,也可以学习到如何设计和实现...

    Spring boot 集成Dubbox的方法示例

    集成Dubbox到Spring Boot的步骤如下: 1. **安装Zookeeper**:Zookeeper是Dubbo服务注册与发现的基础,它是一个分布式协调服务。你需要从Apache官方网站下载Zookeeper,或者从第三方网站获取。在Windows上,解压后...

    spring-boot-dubbo

    整合Spring Boot和Dubbo,我们可以利用Spring Boot的自动配置特性,将Dubbo的服务提供者和服务消费者集成到Spring Boot应用中。下面是一步一步的整合步骤: 1. **环境准备**:确保已安装JDK、Maven,并在项目中引入...

    微服务实战(Dubbox +Spring Boot+Docker)--双11抢购项目源码.rar

    开发者可以从中学习到如何利用Spring Boot创建微服务,如何在Dubbox中定义和调用接口,以及如何通过Docker来编排和运行这些服务。 具体到双11抢购项目,这通常涉及到高并发处理、库存管理、订单系统、支付接口等多...

    Spring-Boot的Dubboxboot-dubbo.zip

    Boot-dubbo 项目整合了最新的 Spring Boot 和功能强大的 RPC 框架 Dubbox,两者都有优点,也都有缺点,最新版本的 Spring Boot 包含了 Metrics 模块Dubbox官方地址:Dubbox:... 1、微内核2、配置简单3、模块化4、开...

    微信支付源码appjava-justpay:spring-boot2.0.0+Dubbox+spring-webflux的轻量级分布式聚合支付

    使用了spring-boot2.0.0中新集成的spring-webflux (reactor) 目前实现了微信支付(4种模式:NATIVE、JSAPI、APP、MWEB),支付宝支付(4种模式:PC、WAP、APP) Justpay架构图 Justpay接入到原系统中的架构位置 项目...

    springboot-dubbox-simple:Dubbox整合Spring Boot基于Avro,Thrift协议构建REST服务

    总结,本文详细介绍了如何将Dubbox与Spring Boot集成,利用Avro和Thrift协议构建REST服务。通过这种方式,开发者可以充分利用Spring Boot的便捷性和Dubbo的高性能,同时享受到RESTful API带来的灵活性和广泛兼容性。...

    springboot dubbox 实例 (springbootdubbox-productor)

    标题中的“springboot dubbox 实例 (springbootdubbox-productor)”指的是一个使用Spring Boot集成Dubbo的项目实例,其中“productor”意味着这是一个生产者服务,它将提供服务或者调用其他服务。 首先,我们需要...

    springboot dubbox 实例 (springbootdubbox-consumer)

    SpringBoot Dubbox 是一个基于 Spring Boot 的 Dubbo 框架集成,它使得在 Spring Boot 应用中使用 Dubbo 变得更加简单和便捷。Dubbo 是阿里巴巴开源的一个高性能、轻量级的服务治理框架,主要用于实现服务间的远程...

    springboot+dubbo

    - **应用创建**:通过 `@SpringBootApplication` 注解启动 Spring Boot 应用,包含 `@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 三个注解的功能。 2. **Dubbo**: - **服务治理...

    xbin-store分布式B2C商城

    xbin-store是一套分布式B2C商城,模仿国内知名B2C网站,实现的一个分布式B2C商城 使用Spring Boot 自动配置 Dubbox / MVC / MyBatis / Druid / Solr / Redis 等。 使用技术: 后台 使用Spring Boot 构建整个项目 ...

    一.dubbox(dangdang V2.8.4)+springBoot(1.4.2.RELEASE)+dubbo-monitor-web 项目源码

    在【dubbox-test】这个压缩包中,可能包含的是用于测试dubbox与Spring Boot集成的各种配置文件、Java源代码、Maven或Gradle构建脚本以及可能的测试类。这些文件通常包括以下部分: 1. **配置文件**:如`application...

    spring-boot-starter-dubbo:Spring启动启动器dubbo

    项目介绍 自定义的spring-boot的dubbo ...在spring-boot项目的application.properties文件中加入相关的配置项,并赋予正确的值 spring.service.dubbo.registry.name=xxx spring.service.dubbo.registry.address=ip1:

    Dubbox的详细配置和案例

    在实际项目中,还可以结合Spring Boot、Spring Cloud等现代框架进一步优化和扩展Dubbox的应用,实现更复杂的服务治理需求。在不断学习和实践中,你将能够充分利用Dubbox的强大功能,提升系统的可扩展性和稳定性。

    Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建

    在本项目中,Spring 可用于管理应用的依赖关系,提供声明式事务管理,以及通过 Spring Boot 快速构建微服务。Spring Data Redis 模块可以方便地集成 Redis,使得操作 Redis 更加便捷。 4. **Hibernate**: Hibernate...

    dubbo-master.zip

    【描述】"dubbo-master,springboot集成dubbo范例" 提供了一个完整的实例,演示了如何在Spring Boot应用中使用Dubbo作为服务治理框架。Dubbo是阿里巴巴开源的一款高性能、轻量级的RPC(远程过程调用)框架,它在服务...

Global site tag (gtag.js) - Google Analytics