与 SpringBoot 整合的三种方式|学习笔记

简介: 快速学习 SpringBoot 整合的三种方式

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门SpringBoot 整合的三种方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9471


SpringBoot 整合的三种方式


课程回顾:

之前课程中用.xml 的方式测试了 dubbo 的一些配置,例如“timeout”(超时属性)、”><”(重置次数)、“version”(版本)等,这些相关属性如果以  SpringBoot 方式进行整合,<dubbo:service标签对应@service注解,在标签中可配置属性。Reference的相关配置也在其注解里。

标签里某个 service 里可能单独配了method的详细设置,而注解无法做到。本节课就讲述 Dubbo 和 SpringBoot 整合的其他方式。


与 SpringBoot 整合的三种方式的配置

1、导入 dubbo-starter,在 application.properties 配置属性。

使用@service【暴露服务】,使用@service【引用服务】,使用此方法要注意@EnableDubbo//开启基于注解的Dubbo功能。

其用来指定包扫描规则。在老版本的配置中,也可这样操作:输入dubbo.scan.base-packages=要扫的包:

image.png

这样写后便不用开启基于注解的 Dubbo 功能。

(1)保留 Dubbo 的.xml 配置文件,以 user-service 提供者为例,把 user-service     的.xml 配置复制过来,舍弃 application.properties 里的所有配置,还是在provider 里把.xml 里配置,再在 Bootuserservice 中写一个注解,

@ImportResource(locations=“classpath:provider.xml”)

这样暴露 service 也不用进行注解。

(2)在 provider.xml 里将 application name 设置成应用的名字并启动,若观察到注册中心注册有报错:UserServiceImpl2未找到,是由于之前注册多版本时也写了一个 UserService2,将其删除即可。重新启动则可以成功启动。

(3)来到 Dubbo Admin 控制台进行刷新,发现出现提供者,打开应用核验。


2、使用注解 API 的方式,将每个组件手动创建到容器中,

让 Dubbo 来扫描其他的组件

(1)打开 dubbo 官方文档中的注解配置,将所有配置写成一个配置令,将所需的 bean 放在容器中。每一个标签都有与其对应的 config 标签,将 config 组件手动地创建,放在容器中。

如图所示,写一个配置类:手动的将配置文件放进去,相当于替代Dubboapplication 标签。

image.png

(2)配置文件里还需要 registry 注册中心的信息,使用代码构建:public RegistryConfig registryConfig()

RegistryConfig registryConfig=new RegistryConfig();

registryConfig.setProtocol(“zookeeper”);

registryConfig.setAddress(“地址”);

return registryConfig,@Bean放在容器中

(3)xml 标签中配有通信的规则,同样使用代码构建:

Public Protocolconfig protocolconfig()

Protocolconfig protocolconfig=new Protocolconfig();

protocolconfig.setName=(“Dubbo”);

protocolconfig.setPort(20882);

return protocolconfig; @Bean放在容器中

再将暴露的服务配置进来:

Public ServiceConfig<userservice> userServiceconfig()

ServiceConfig<userservice> serviceconfig=new serviceconfig<>();

Serviceconfig.setinterface(userservice.class);

Serviceconfig.setref(userservice);

Serviceconfig.setversion(“1.0.0”)

image.png

再配置每一个method的信息:

//配置每一个method的信息

MethodConfig methodconfig=new MethodConfig();

methodconfig.setname(“getUserAddressList”);

methodconfig.settimeout(1000);

//将method的设置关联到service配置中

List<methodconfig>methods=new ArrayList<();Methods.add(methodConfig);serviceConfig.setMethods(methods);
List<methodconfig>methods=new ArrayList<>();Methods.add(methodConfig);serviceConfig.setMethods(methods);

image.png

这样 service 就配置好了,@Bean 加在容器中。

其他例如 provider、monitor 都有其对应的 config,都可按照上述方法进行配置。

(4)配置好以后,返回官方文档,此时需要来指定一下 Dubbo 的 service 接口的扫描路径,使用@DubboComponent 注解,和前面使用的@Enabledubbo 注解是一样的。

@Enabledubbo(scanBasePackageClasses=“要扫描的包”)

用@service 注解暴露服务后,重新启动测试,刷新控制台,可以看到应用数有1个,即以上创建的 userservice。

相关文章
|
消息中间件 Java RocketMQ
Springboot 集成 Rocketmq 消费者|学习笔记
快速学习 Springboot 集成 Rocketmq 消费者
1402 1
Springboot 集成 Rocketmq 消费者|学习笔记
|
消息中间件 IDE Java
Springboot 集成 Rocketmq 生产者|学习笔记
快速学习 Springboot 集成 Rocketmq 生产者
774 0
Springboot 集成 Rocketmq 生产者|学习笔记
|
NoSQL 安全 Java
SpringBoot 自动配置的原理|学习笔记
快速学习 SpringBoot 自动配置的原理
172 0
SpringBoot 自动配置的原理|学习笔记
|
SQL 监控 Java
SpringBoot的MyBatis工程配置|学习笔记
快速学习SpringBoot的MyBatis工程配置
219 0
SpringBoot的MyBatis工程配置|学习笔记
|
监控 Java 应用服务中间件
SpringBoot|学习笔记
快速学习SpringBoot
106 0
SpringBoot|学习笔记
|
存储 机器学习/深度学习 IDE
SpringBoot 项目与被开发快速迁移|学习笔记
快速学习 SpringBoot 项目与被开发快速迁移
SpringBoot 项目与被开发快速迁移|学习笔记
|
安全 Java 应用服务中间件
集中式整合之搭建Springboot环境|学习笔记
快速学习集中式整合之搭建Springboot环境
集中式整合之搭建Springboot环境|学习笔记
|
消息中间件 Java 测试技术
SpringBoot 集成 JUNIT 测试下单基本流程|学习笔记
快速学习 SpringBoot 集成 JUNIT 测试下单基本流程
184 0
SpringBoot 集成 JUNIT 测试下单基本流程|学习笔记
|
Java 程序员 应用服务中间件
初识 SpringBoot|学习笔记
快速学习 初识 SpringBoot
125 0
|
Java 开发者
SpringBoot 整合测试|学习笔记
快速学习 SpringBoot 整合测试
186 0
SpringBoot 整合测试|学习笔记
下一篇
无影云桌面