dubbo与springboot的三种整合方式
2024-08-23 20:35:10
SpringBoot与dubbo整合的三种方式:
1、导入dubbo-starter,在application.properties配置属性,使用@Service暴露服务,使用@Reference引用服务,
使用@EnableDubbo开启dubbo注解(或者在application.properties中配置dubbo.scan.base-packages=com.lina02.gmall)
2、保留dubbo.xml配置文件;导入dubbo-starter,使用@ImportResource导入dubbo的配置文件即可
3、使用注解API的方式:将每一个组件手动创建到容器中,让dubbo来扫描其他的组件
配置类如下:
package com.lina02.gmall.config; import com.alibaba.dubbo.config.*;
import com.lina02.gmall.service.UserService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import java.util.ArrayList;
import java.util.List; @Configuration
public class MyDubboConfig { //<dubbo:application name="user-service-provider"></dubbo:application>
@Bean
public ApplicationConfig applicationConfig(){
ApplicationConfig applicationConfig=new ApplicationConfig();
applicationConfig.setName("boot-user-service-provider");
return applicationConfig;
} //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
@Bean
public RegistryConfig registryConfig(){
RegistryConfig registryConfig=new RegistryConfig();
registryConfig.setProtocol("zookeeper");
registryConfig.setAddress("127.0.0.1:2181");
return registryConfig;
} //<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
@Bean
public ProtocolConfig protocolConfig(){
ProtocolConfig protocolConfig=new ProtocolConfig();
protocolConfig.setName("dubbo");
protocolConfig.setPort(20882);
return protocolConfig;
} /**
* <dubbo:service interface="com.lina02.gmall.service.UserService" ref="userServiceImpl" timeout="1000" version="1.0.0">
* <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
* </dubbo:service>
*/
@Bean
public ServiceConfig<UserService> userServiceServiceConfig(UserService userService){
ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
serviceConfig.setInterface(UserService.class);
serviceConfig.setRef(userService);
serviceConfig.setVersion("1.0.0"); //配置每一个method的信息
MethodConfig methodConfig = new MethodConfig();
methodConfig.setName("getUserAddressList");
methodConfig.setTimeout(1000); //将method的设置关联到service配置中
List<MethodConfig> methods = new ArrayList<>();
methods.add(methodConfig);
serviceConfig.setMethods(methods); return serviceConfig;
}
}
开启dubbo扫描组件:
@DubboComponentScan(basePackages = "com.lina02.gmall")
或者
@EnableDubbo(scanBasePackages = "com.lina02.gmall")
最新文章
- C#中Finally的一个不太常见的用法
- cin, cin.getline等函数
- Git在Windows环境下配置Diff以及Merge工具---DiffMerge
- Atitit 编程语言知识点tech tree v2 attilax大总结
- C# ~ 由 IDisposable 到 GC
- NYOJ题目98成绩转换
- 【Gym 100712A】Who Is The Winner?
- 蓝牙的Baseband说明
- 设备、像素和点 、 9切片技术 、 颜色和外观 、 NavigationBar的美化
- 如何在User版本开启串口(Uart),抓取上层Log,开启输入控制台
- oracle中substr函数的用法
- Visual Studio下,打开资源视图rc文件,提示在另一个编辑器中打开
- 如何获取数据块结构信息dump
- 自己用h5写的转盘。写贴上来吧。
- Python 黑帽编程 4.2 Sniffer之数据本地存储和加载
- 并发编程(一):从头到脚解读synchronized
- Ubuntu 16.04 Vim安装及配置
- Python:Day25 成员修饰符、特殊成员、反射、单例
- ORACLE 从一个实例迁移到另外一个实例实战记录
- lch 儿童围棋课堂 启蒙篇 (李昌镐 著)
热门文章
- MSP430G2553需要注意的一些参数
- webstorm代码提示按键改为alt+/
- 使用idea导入远程git版本库项目
- codeforces 702D D. Road to Post Office(数学)
- luogu 3389 【模板】高斯消元
- Subset Sums
- 简单三步快速学会使用Mybatis-Generator自动生成entity实体、dao接口以及mapper映射文件(postgre使用实例)
- CopyOnWrite 策略
- hibernate 学习 五 hibernate核心接口
- css3单位em,rem,px,vw,vh等