SpringBoot整合Dubbox(无XML配置)
来源:互联网 发布:c语言头文件里写什么 编辑:程序博客网 时间:2024/05/17 08:10
简介
Dubbox是当当网对阿里的Dubbo进行增强的一个分支。在使用springboot之后,我们发现很多配置并不一定要使用xml。这篇文章的目的是让你使用Dubbox时能像使用springboot的其它功能一样可以在application.properties中配置。
基础整合
- 进入https://github.com/dangdangdotcom/dubbox ,将源码下载(当当网没有提交上maven仓库,所以不能直接从中央仓库依赖);打包进本地仓库
mvn clean install -DskipTests
- 添加Maven依赖
<!-- zookeeper --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <!-- Dubbox --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> </dependency> <!-- springboot的注解处理器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
- 添加配置类
@Configuration public class DubboConfig { @Bean @ConfigurationProperties(prefix="dubbo.application") public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); return applicationConfig; } @Bean @ConfigurationProperties(prefix="dubbo.registry") public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); return registryConfig; } @Bean @ConfigurationProperties(prefix="dubbo.annotation") public AnnotationBean annotationBean() { AnnotationBean annotationBean = new AnnotationBean(); return annotationBean; } @Bean @ConfigurationProperties(prefix="dubbo.protocol") public ProtocolConfig protocolConfig() { ProtocolConfig protocolConfig = new ProtocolConfig(); return protocolConfig; } }
- 在application.properties中配置Dubbox属性
#应用名 dubbo.application.name= #负责人 dubbo.application.owner= #注册zookeeper的地址 dubbo.registry.address=zookeeper://localhost:2181 #扫包 dubbo.annotation.package=com.yeauty.service #协议 (有 dubbo、rest、http、hessian、webservice) dubbo.protocol.name=dubbo #协议暴露服务的端口(Integer类型) dubbo.protocol.port=20880
- 提供者与消费者
提供者注解(实现类上): @Service(包:com.alibaba.dubbo.config.annotation.Service) @Component(包:org.springframework.stereotype.Component) 消费者注解(Interface上): @Reference(包:com.alibaba.dubbo.config.annotation.Reference)
- 注意!!!
springboot的开发热部署包一定要去掉!不然会出BUG
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency>
现在已经可以正常使用了,若想进行扩展,可以继续往下~
指定序列化配置
- 添加Maven依赖
<dependency> <groupId>com.esotericsoftware.kryo</groupId> <artifactId>kryo</artifactId> <version>2.24.0</version> </dependency> <dependency> <groupId>de.javakaffee</groupId> <artifactId>kryo-serializers</artifactId> <version>0.26</version> </dependency>
- application.properties中配置属性
#序列化方式(kryo是目前效率最高的) dubbo.protocol.serialization=kryo #序列化优化的实现类 dubbo.protocol.optimizer=
- 添加序列化实现类
public class SerializationOptimizerImpl implements SerializationOptimizer { public Collection<Class> getSerializableClasses() { List<Class> classes = new LinkedList<Class>(); return classes; } }
需要进行kryo序列化的类在这里add进list里面
详细可参考:https://dangdangdotcom.github.io/dubbox/serialization.html
Dubbox的REST支持
- 添加Maven依赖
<dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>3.0.7.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-client</artifactId> <version>3.0.7.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency> <!-- 如果要使用json序列化 --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>3.0.7.Final</version> </dependency> <!-- 如果要使用xml序列化 --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>3.0.7.Final</version> </dependency>
- 在配置类中添加方法
@Bean @ConfigurationProperties(prefix="dubbo.protocol.rest") public ProtocolConfig protocolRestConfig() { ProtocolConfig protocolConfig = new ProtocolConfig(); return protocolConfig; }
- application.properties中配置属性
dubbo.protocol.rest.name=rest dubbo.protocol.rest.port=8082 dubbo.protocol.rest.server=tomcat
更多属性配置和使用方法请参考:https://dangdangdotcom.github.io/dubbox/rest.html
注:未经同意不得转载
阅读全文
1 0
- SpringBoot整合Dubbox(无XML配置)
- springboot整合dubbox
- SpringBoot 无XML的相关配置
- springboot整合mybatis xml方式配置SQL
- Springboot多realm集成,无ini文件,无xml配置
- springboot整合mybatisplus配置
- SpringBoot之Dubbox
- SpringBoot之Dubbox
- springBoot项目集成dubbox
- dubbox配置
- SpringBoot(三):springboot整合mybatis(xml形式)
- springboot整合mybatis(xml版)
- SpringBoot 配置 web.xml
- springboot 引入xml配置
- SpringBoot整合多数据源xml方式
- SpringBoot(四):SpringBoot整合JdbcTemplate
- SpringBoot(五):SpringBoot整合MyBatis
- SpringBoot(七):SpringBoot整合Swagger2
- 第0次作业
- Docker源码分析(八):Docker Container网络(下)
- 【java多线程】分段阶乘计算
- Nginx网站常见的跳转配置实例
- 使用ArcGIS Runtime WPF SDK (1)创建自己的地图应用程序
- SpringBoot整合Dubbox(无XML配置)
- PCA的本质分析(泛数学原理)
- css如何让两个div高度一致
- JS(二十)前端表格控件Datalist2使用
- Vegas怎么给视频加水印、打码?
- H5自身的属性
- Effective Java中文第二章第5节(个人渣翻)
- http://blog.csdn.net/u014607457/article/details/51290582
- Docker源码分析(九):Docker镜像