dubbo和spring boot整合简约版(xml和annotation)
2017-10-21 18:02
881 查看
spring boot 和 dubbo 整合 xml + annotation 版本
(感觉好像是spring 与dubbo之间的整合)provider要点:
1. dubbo.properties 配置dubbo的各种参数 application, registry.addres
dubbo.provider.xml 这里就是使用
<dubbo: .../>标签来导入dubbo.properties中的参数,并输出provider 实例
<dubbo:application name="${dubbo.application.name}"/> <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}"/> <dubbo:protocol name="${dubbo.protocol.name}" port="${dubbo.protocol.port}"/> <dubbo:service interface="com.zhb.app.dubbo.Hello" ref="helloImpl"/>
其中 helloImpl是在代码里面,使用annotation定义的实例。
2. spring boot中使用 下面的annotation 引入配置文件
@Configuration @PropertySource("classpath:dubbo/dubbo.properties") @ImportResource({ "classpath:dubbo/*.xml" }) public class DubboConfig { }
接下来
3. build.gradle 定义的第三方Jar, 除了spring boot的相关的
还有:dubbo 和 zkclient,zkclient如果没有,项目启动会报错的。暂时不知道为何需要。还有consumer和provider两端共有的api jar
consumer 要点
1. dubbo.properties 减少暴露服务方式的配置
dubbo-consumer.xml
<!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="${dubbo.application.name}" /> <!-- 注册中心暴露服务地址 --> <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}" /> <dubbo:reference id="helloImpl" interface="com.zhb.app.dubbo.Hello" />
然后再代码里面 @autowire
2. annotation 引入配置文件 同上。
3. build.gradle 同上
spring boot 和 dubbo 整合 纯annotation 版本
provider要点:1. 使用annotation引入参数,
dubbo.annotation.package 这个参数比较重要,设置使用annotation扫描
使用AnnotationBean,ApplicationConfig 等bean来注入dubbo的参数。
@Configuration @ConditionalOnClass(Exporter.class) @PropertySource(value = "classpath:dubbo/dubbo.properties") public class DubboConfiguration { @Value("${dubbo.application.name}") private String applicationName; @Bean public static AnnotationBean annotationBean(@Value("${dubbo.annotation.package}") String packageName) { AnnotationBean annotationBean = new AnnotationBean(); annotationBean.setPackage(packageName); return annotationBean; }
后面的代码省略。。。。。
2. 使用spring的@Component和dubbo的@Service来提高一个示例
@Component @Service(version="1.0.0") public class HelloImpl implements Hello{ private static final Logger LOGGER = LoggerFactory.getLogger(HelloImpl.class); @Override public String sayHello(String name) { LOGGER.info("recevie invoke," + name); return "hello world," + name; } }
接下来
3. 之前的provider.xml以及相关的类就可以不用了,其他的配置不变
consumer要点:
1. 使用annotation引入参数, 和上面的相似,但是要去除ProtocolConfig配置,并且把providerConfig改为consumerConfig,其他的保持不变
2. 使用dubbo 的reference注解引入示例
@Reference(version = "1.0.0") private Hello hello;
直接使用即可
3. 之前的consumer.xml以及相关的类就可以不用了,其他的配置不变
最后加上build.gradle 配置文件
import java.lang.invoke.LambdaForm.Compiled; buildscript{ ext{ springBootVersion = '1.3.5.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'spring-boot' springBoot { backupSource = false mainClass = 'com.zhb.app.PortalApplication' } jar { baseName = 'springBootTest' version = '0.0.1-SNAPSHOT' } //apply plugin: 'application' //applicationDefaultJvmArgs = ['-javaagent:E:\\xgsdk\\commonLib\\springloaded-1.2.5.RELEASE.jar -noverify'] repositories { mavenCentral() } dependencies { compile fileTree(dir: "libs", include: "*.jar") compile "org.springframework.boot:spring-boot-starter-web" compile( "com.alibaba:fastjson:1.2.4", "commons-codec:commons-codec:1.5", "org.apache.commons:commons-lang3:3.3.2", "com.alibaba:dubbo:2.5.6" ) compile("com.github.sgroschupf:zkclient:0.1") { exclude group: 'org.slf4j' } testCompile("org.springframework.boot:spring-boot-starter-test") }
相关文章推荐
- springboot整合dubbo(注册中心zookeeper)无xml
- SpringBoot整合Dubbox(无XML配置)
- SpringBoot 整合 dubbo xml实现
- Springboot整合dubbo构建maven多模块项目(一)- 项目创建和pom.xml中jar包配置
- SpringBoot整合Dubbox(无XML配置)
- SpringBoot 整合 dubbo xml实现代码示例
- SpringBoot(三):springboot整合mybatis(xml形式)
- dubbo整合springboot入门案例
- springboot之整合mybatis-annotation(注解方式)
- springboot与dubbo整合(基于注解)
- SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
- Spring Boot对dubbo的整合
- SpringBoot整合Dubbo2.5.10,使用官方最新spring-boot-starter
- Spring-boot:5分钟整合Dubbo构建分布式服务 - jaycekong - 博客园
- Spring Boot整合Dubbo框架demo
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- springboot整合dubbo-start
- Spring Boot整合Dubbo框架demo
- 详解Springboot整合Dubbo之代码集成和发布
- spring整合dubbo时xml配置文件问题