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 相亲相爱

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

Solon集成(02)- 轻松吃下小馒头 Dubbo的更多相关文章

  1. html+css+js实现狼吃羊小游戏

    html+css+js实现狼吃羊小游戏 一.总结 一句话总结:给动的元素下标记,这里表现为将要活动的标签动态增加class,这是一种很好的思想. 1.如何实现棋子走动的时候简单精确定位? 用重构坐标系 ...

  2. Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述

    Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述 Overview 本章的主要的内容是贪吃蛇小游戏的分析和实现,关于实现的具体代码可以在,文章底部的github的链接中找到. 整个游戏通 ...

  3. PacMan 04——道具生成吃下道具怪物的移动

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  4. 谈Vite在Electron环境下吃花卷拉馒头的现象

    缘起 在Electron的渲染进程中(也就是页面代码中), 我们常常使用process.env来携带一些环境变量, 比如HTTP服务地址的基质,本地静态资源的路径等 这样做主要有两个目的 一个是方便开 ...

  5. PHP+memcache扩展(集成环境wampserver环境下)

    按照别人的步骤,安装和配置后没有任何的错误提示!在计算机服务里面也看到memcached服务已经开启,但是phpinfo里面就是没有memcache已经安装成功的信息!后来才发现原来是没有开启wamp ...

  6. 【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 我们一同在前几期的博客中已经学到了很多pygame的基本知识了,现在该做个小游戏实战一下了. 前几期博客链接 ...

  7. Android之RecyclerView轻松实现下拉刷新和加载更多

    今天研究了下RecyclerView的滑动事件,特别是下拉刷新和加载更多事件,在现在几乎所有的APP显示数据列表时都用到了.自定义RecyclerView下拉刷新和加载更多听上去很复杂,实际上并不难, ...

  8. (转载)Windows下小狼毫输入法(Rime)的安装与配置(含导入搜狗词库)

    div id="cnblogs_post_body" class="blogpost-body"> 最近彻底烦透了搜狗拼音输入法的各种流氓行为,自动升级不 ...

  9. ASP.NET Web API实践系列02,在MVC4下的一个实例, 包含EF Code First,依赖注入, Bootstrap等

    本篇体验在MVC4下,实现一个对Book信息的管理,包括增删查等,用到了EF Code First, 使用Unity进行依赖注入,前端使用Bootstrap美化.先上最终效果: →创建一个MVC4项目 ...

随机推荐

  1. C#操作Excel开发报表系列整理

    C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  2. 图像通道、RGB与色彩体系

    通道(Channels) 图像的通道指的是什么?是不是灰度图的通道数为1,彩色图的通道为3 ? 图像通道,在RGB色彩模式下就是指那单独的红色.绿色.蓝色部分.也就是说,一幅完整的图像,是由红色绿色蓝 ...

  3. 20190917-01VI/VIM编辑器 000 002

    VI是Unix 操作系统和类Unix操作系统中最通用的文本编辑器. VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器.可以主动的以字体颜色便被语法的正确性,方便程序设计.VIM与VI编辑器完全 ...

  4. layui表单引入ueditor遇坑记

    1. 错误示例:表单容器是div标签则无法获取ueditor的内容 注:对于普通的表单元素表单容器是div也都能获取 <!DOCTYPE html> <html> <he ...

  5. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  6. Robotframework自动化3-APP启动

    前言 前两节已经讲述了环境的搭建,这节介绍APP是如何运行的 介绍 1.创建项目 2.创建测试套件 3.创建测试用例 4.APP运行 一.创建项目 打开ride,开始创建项目,左上角File--> ...

  7. python函数小案例

    python函数 目录 python函数 1.写一个函数求三个数的和,并返回结果 2.写一个函数,求平均值,并返回结果 写一个函数,求每个数与平均值之间的差,并放回结果 1.写一个函数求三个数的和,并 ...

  8. kvm虚拟化存储管理(3)

    一.KVM 存储虚拟化介绍 KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的. Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型: Vo ...

  9. (专题一)01 matlab基础

    功能区:主页,绘图,应用程序 当前文件夹工具栏 命令行窗口:输入命令,按下回车键,会在后面显示执行后的命令 如果命令行很长可以分两行来写,用“...”做续行符 建立当前文件夹:可以用cd命令 例如在d ...

  10. 绝了!一个妹子 rm -rf 把公司整个数据库删没了...

    经历了两天不懈努力,终于恢复了一次误操作删除的生产服务器数据.对本次事故过程和解决办法记录在此,警醒自己,也提示别人莫犯此错.也希望遇到问题的朋友能找到一丝灵感解决问题. 01 事故背景 安排一个妹子 ...