1、dubbox需要在本地install,地址https://github.com/dangdangdotcom/dubbox.git,使用版本为2.8.4
2、新建spring boot项目,版本为1.5.6.RELEASE
spring-boot-dubbox-api:dubbo服务接口
spring-boot-dubbox-provider: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;
// }
}
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&……
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接口与后台管理系统》 在当今信息化时代,高效、稳定的后台管理系统是企业运营的核心。本项目采用Spring-boot和dubbox技术栈,旨在构建一套灵活、可扩展的API接口及后台管理系统...
【标题】"管理系统系列--基于Spring-boot和dubbox的API接口和后台管理系统"涉及到的是一个使用现代Java技术栈构建的企业级应用。Spring-boot是核心框架,用于简化Spring应用程序的初始搭建以及开发过程,而dubbox是...
对于开发者来说,这个项目提供了实践Spring Boot和Dubbo集成的机会,可以了解如何在实际项目中使用这些技术,理解微服务架构的设计思想,以及如何通过API接口进行服务间的通信。此外,也可以学习到如何设计和实现...
集成Dubbox到Spring Boot的步骤如下: 1. **安装Zookeeper**:Zookeeper是Dubbo服务注册与发现的基础,它是一个分布式协调服务。你需要从Apache官方网站下载Zookeeper,或者从第三方网站获取。在Windows上,解压后...
整合Spring Boot和Dubbo,我们可以利用Spring Boot的自动配置特性,将Dubbo的服务提供者和服务消费者集成到Spring Boot应用中。下面是一步一步的整合步骤: 1. **环境准备**:确保已安装JDK、Maven,并在项目中引入...
开发者可以从中学习到如何利用Spring Boot创建微服务,如何在Dubbox中定义和调用接口,以及如何通过Docker来编排和运行这些服务。 具体到双11抢购项目,这通常涉及到高并发处理、库存管理、订单系统、支付接口等多...
Boot-dubbo 项目整合了最新的 Spring Boot 和功能强大的 RPC 框架 Dubbox,两者都有优点,也都有缺点,最新版本的 Spring Boot 包含了 Metrics 模块Dubbox官方地址:Dubbox:... 1、微内核2、配置简单3、模块化4、开...
使用了spring-boot2.0.0中新集成的spring-webflux (reactor) 目前实现了微信支付(4种模式:NATIVE、JSAPI、APP、MWEB),支付宝支付(4种模式:PC、WAP、APP) Justpay架构图 Justpay接入到原系统中的架构位置 项目...
总结,本文详细介绍了如何将Dubbox与Spring Boot集成,利用Avro和Thrift协议构建REST服务。通过这种方式,开发者可以充分利用Spring Boot的便捷性和Dubbo的高性能,同时享受到RESTful API带来的灵活性和广泛兼容性。...
标题中的“springboot dubbox 实例 (springbootdubbox-productor)”指的是一个使用Spring Boot集成Dubbo的项目实例,其中“productor”意味着这是一个生产者服务,它将提供服务或者调用其他服务。 首先,我们需要...
SpringBoot Dubbox 是一个基于 Spring Boot 的 Dubbo 框架集成,它使得在 Spring Boot 应用中使用 Dubbo 变得更加简单和便捷。Dubbo 是阿里巴巴开源的一个高性能、轻量级的服务治理框架,主要用于实现服务间的远程...
- **应用创建**:通过 `@SpringBootApplication` 注解启动 Spring Boot 应用,包含 `@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 三个注解的功能。 2. **Dubbo**: - **服务治理...
xbin-store是一套分布式B2C商城,模仿国内知名B2C网站,实现的一个分布式B2C商城 使用Spring Boot 自动配置 Dubbox / MVC / MyBatis / Druid / Solr / Redis 等。 使用技术: 后台 使用Spring Boot 构建整个项目 ...
在【dubbox-test】这个压缩包中,可能包含的是用于测试dubbox与Spring Boot集成的各种配置文件、Java源代码、Maven或Gradle构建脚本以及可能的测试类。这些文件通常包括以下部分: 1. **配置文件**:如`application...
项目介绍 自定义的spring-boot的dubbo ...在spring-boot项目的application.properties文件中加入相关的配置项,并赋予正确的值 spring.service.dubbo.registry.name=xxx spring.service.dubbo.registry.address=ip1:
在实际项目中,还可以结合Spring Boot、Spring Cloud等现代框架进一步优化和扩展Dubbox的应用,实现更复杂的服务治理需求。在不断学习和实践中,你将能够充分利用Dubbox的强大功能,提升系统的可扩展性和稳定性。
在本项目中,Spring 可用于管理应用的依赖关系,提供声明式事务管理,以及通过 Spring Boot 快速构建微服务。Spring Data Redis 模块可以方便地集成 Redis,使得操作 Redis 更加便捷。 4. **Hibernate**: Hibernate...
【描述】"dubbo-master,springboot集成dubbo范例" 提供了一个完整的实例,演示了如何在Spring Boot应用中使用Dubbo作为服务治理框架。Dubbo是阿里巴巴开源的一款高性能、轻量级的RPC(远程过程调用)框架,它在服务...