Solon详解系列文章:
Solon详解(一)- 快速入门
Solon详解(二)- Solon的核心
Solon详解(三)- Solon的web开发
Solon详解(四)- Solon的事务传播机制
Solon详解(五)- Solon扩展机制之Solon Plugin
Solon详解(六)- Solon的校验扩展框架使用与扩展
Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330
Solon详解(八)- Solon的缓存框架使用和定制
Solon详解(九)- 渲染控制之定制统一的接口输出
Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?
Solon集成(01)- Mybatis 与 Solon 相亲相爱
Solon集成(02)- 轻松吃下小馒头 Dubbo
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。现在,也可以和Solon框架无缝集成。。。今天主要讲讲Solon如何集成官方的Dubbo。
一、运行工具与环境
- 运行环境:JDK 8,Maven 4.0
- 技术栈:Solon 1.1+、Dubbo 2.7.5+、Nacos 1.3+
- 工具:IntelliJ IDEA、谷歌浏览器
二、Springboot快速集成Dubbo关键的依赖
<dependency>
<groupId>org.noear</groupId>
<artifactId>dubbo-solon-plugin</artifactId>
<version>1.0.43</version>
</dependency>
三、如何使用
- 1.使用Dubbo要知道服务提供者和消费者概念,而且调用的服务接口最好是共同的Api,如下图是我写的入门项目。
- 2.配置application.yml
server.port: 8011
dubbo:
application:
name: hello
owner: noear
registry:
address: nacos://192.168.8.118:8848
这边用到的注册中心是阿里的Nacos,当然你也可以用其他注册中心,你可以查看Dubbo文档,里面有其他注册中心使用方法。其他一些配置可以去官网查看,这边就不在多说。
- 3.服务提供者和消费者
共同的接口:
public interface HelloService {
String sayHello(String name);
}
这就是服务提供者和消费者共同调用的接口了。简单了点儿。
服务提供者:
@Service(group = "hello")
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "hello, " + name;
}
}
@EnableDubbo
public class DubboProviderApp {
//服务端启动入口
public static void main(String[] args) {
XApp.start(DubboProviderApp.class, args);
}
}
简单来说就是将上面接口的实现方法(称之为服务)注册到注册中心,并暴露端口供其他消费者消费。@Service里面的一些信息就是服务具体的注册地址。
服务消费者:
@EnableDubbo
@XController
public class DubboConsumeApp {
//同时加个应用启动入口;方便测试
public static void main(String[] args) {
XApp.start(DubboConsumeApp.class, args, app -> app.enableHttp(false));
//通过手动模式直接拉取bean
DubboConsumeApp tmp = Aop.get(DubboConsumeApp.class);
System.out.println(tmp.home());
}
@Reference(group = "hello")
HelloService helloService;
@XMapping("/")
public String home() {
return helloService.sayHello("noear");
}
}
如上@Reference的直接表示远程调用,里面最重要的是url,表示要调用的地址,也就是上面服务暴露的地址。
四、运行项目
首先启动服务提供者,在启动服务调用者,打开谷歌浏览器,输入 http://localhost:8080/
,输出:
hello, noear
五、项目地址
https://gitee.com/noear/solon_demo/tree/master/demo23.solon_dubbo_sml