dubbo什么時候開源的,java如何集成dubbo_boot集成dubbo踩過的坑

 2023-11-12 阅读 29 评论 0

摘要:這里只闡述如何集成生產者端,消費者端差不多雷同就不多敘述了:1.首先引入相關依賴io.dubbo.springbootdubbo什么時候開源的?spring-boot-starter-dubbo1.0.02.然后配置文件spring.dubbo.application.name=自己的項目名稱dubbo調用方式、spring.dubbo.regis

這里只闡述如何集成生產者端,消費者端差不多雷同就不多敘述了:

1.首先引入相關依賴

io.dubbo.springboot

dubbo什么時候開源的?spring-boot-starter-dubbo

1.0.0

2.然后配置文件

spring.dubbo.application.name=自己的項目名稱

dubbo調用方式、spring.dubbo.registry.address=zookeeper://127.0.0.1:2181

spring.dubbo.protocol.name=dubbo

spring.dubbo.protocol.port=20880

spring.dubbo.scan=掃描dubbo實現的類的路徑

dubbo使用?3.編寫測試類

public interface DubboTest{

void test();

}

Spring boot,public class MyDubboTestImpl implements DubboTest{

@Override

public void test(){

System.out.println("dubbo服務");

dubbo調用過程?}

}

4.啟動本地zk,然后再啟動服務

5.觀察zk信息可以看到服務被注冊上

dubbo注解、注意:

這里在使用配置文件的時候有一個坑需要注意,目前應該是只有在用這個jar包集成dubbo的時候才會出現,

我們在使用內部配置文件的時候沒有任何問題;但是當使用外部配置文件,例如

@PropertySource(value={"xxxx"})來引入時,會發現dubbo服務無法注冊到zk上;

springboot消息隊列?我經過調試源碼發現,當我們通過引入外部配置文件的方式啟動程序時,發現

package io.dubbo.springboot;

import com.alibaba.dubbo.config.spring.AnnotationBean;

import org.springframework.beans.BeanUtils;

dubbo分布式框架、import org.springframework.context.ApplicationContextInitializer;

import org.springframework.context.ConfigurableApplicationContext;

import org.springframework.core.env.Environment;

public class DubboConfigurationApplicationContextInitializer implements ApplicationContextInitializer {

dubbo分布式事務?@Override

public void initialize(ConfigurableApplicationContext applicationContext) {

Environment env = applicationContext.getEnvironment();

String scan = env.getProperty("spring.dubbo.scan");

if (scan != null) {

AnnotationBean scanner = BeanUtils.instantiate(AnnotationBean.class);

scanner.setPackage(scan);

scanner.setApplicationContext(applicationContext);

applicationContext.addBeanFactoryPostProcessor(scanner);

applicationContext.getBeanFactory().addBeanPostProcessor(scanner);

applicationContext.getBeanFactory().registerSingleton("annotationBean", scanner);

}

}

}

上面這個類中的scan 參數為null,但是使用內部配置文件的時候scan這個參數不為空;

然后再查看env以及applicationContext的參數信息,發現沒相關配置的信息,看下圖:

1.不正常:

8b9802778ec8?from=timeline&isappinstalled=0

image.png

2.正常的:

8b9802778ec8?from=timeline&isappinstalled=0

image.png

8b9802778ec8?from=timeline&isappinstalled=0

image.png

解決辦法:

1.首先想到的解決辦法是直接繼承這個類,然后重寫該方法,然后嘗試了發現不生效,通過追查引用發現,這個類是通過spring.factories這個文件配置的

8b9802778ec8?from=timeline&isappinstalled=0

image.png

2.下載這個jar的源碼重新編寫這個類,然后打包傳入本地私服的第三方jar上,通過pom導入使用;

3.尋找能否覆蓋這個文件,指定使用自己重寫的配置類(不知道有沒有,還沒有找到);

目前遇到了這些問題和注意事項,文章可能有出入,如果有問題,請聯系QQ:1107156537

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/172386.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息