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的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
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接入到原系统中的架构位置 项目...
xbin-store是一套分布式B2C商城,模仿国内知名B2C网站,实现的一个分布式B2C商城 使用Spring Boot 自动配置 Dubbox / MVC / MyBatis / Druid / Solr / Redis 等。 使用技术: 后台 使用Spring Boot 构建整个项目 ...
项目介绍 自定义的spring-boot的dubbo ...在spring-boot项目的application.properties文件中加入相关的配置项,并赋予正确的值 spring.service.dubbo.registry.name=xxx spring.service.dubbo.registry.address=ip1:
使用Spring Boot 与Dubbo集成,这里我之前尝试了使用注解的方式,简单的使用注解注册服务其实是没有问题的,但是当你涉及到使用注解的时候在服务里面引用事务,注入其他对象的时候,会有一些问题。于是我就果断放弃...
01、Spring boot集成Dubbo入门到精通视频教程。02、Dubbo基础到高级教程。03、Dubbox分布式框架入门到精通教程。04、【实战】基于dubbo海量流量分布式商城项目实战
而,如果新编写的Spring Cloud应用去进行迁就,例如:完全不动Dubbo遗留系统,使用RestTemplate或Feign编写Dubbo(DubboX)的RESTful API客户端代理—>有一定的实现复杂度,Dubbo接口改造成RESTful API后,消费方都...
无缝集成spring和spring boot项目 非spring项目中也可以使用 web后台支持不同账号管理不同环境的配置 支持水平扩展容,负载,部署多个服务器,客户端自动发现 支持用户自定义配置修改某些接口做扩展 支持手动触发...
去除dubbox框架,引入spring cloud框架 3. 重新定义了common 模块的API 4. 支持JPA 5. 支持yml格式的配置文件 2017年9月24 王伟 3.4 增加了framework-tx模块 2020年2月4日 王伟 3.5 更新了springboot至2.3.6.RELEASE...
使用技术:后台1、使用Spring Boot 构建整个项目 去除 XML 配置2、Maven构建项目3、Jenkins作为持续集成4、采用Dubbox作为RPC框架5、kryo序列化6、使用 Apollo 配置中心7、使用Spring+Spring MVC+MyBatisSSM框架8、...