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. Linux下命令设置别名--alias(同实用于mac)

    最近在搞appium自动化脚本编写,过程中经常会使用 uiautomatorviewer这个工具查看UI布局和元素,但是不得不说这个单词太长了.. 如何快速使用,有三个小技巧,分别是: 1.设置好改工 ...

  2. Black & White(尺取)

    链接:https://ac.nowcoder.com/acm/contest/893/F来源:牛客网 * 第一行一个整数 T ,表示接下来有 T 个样例.* 首先输入n,m,表示S串的长度n和操作次数 ...

  3. Dos简易基础及常用Dos命令

    Dos简易基础及常用Dos命令 什么是cmd? cmd是command的缩写,意指操作系统中的命令行程序,一般说的都是Windows中的Dos系统. 如何打开cmd? 键盘操作:Win + R 输入c ...

  4. [Oracle/SQL]找出id为0的科目考试成绩及格的学生名单的四种等效SQL语句

    本文是受网文 <一次非常有意思的SQL优化经历:从30248.271s到0.001s>启发而产生的. 网文没讲创建表的数据过程,我帮他给出. 创建科目表及数据: CREATE TABLE ...

  5. centos7在线yum安装jumpsever2.2.2

    #查看主机名 host=$(hostname) # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文 localedef -c -f UTF-8 -i zh_C ...

  6. HTML5总结整理

    (仅供大家学习分享交流) 一.简介 1.前端开发最核心技术 我们知道,用所谓的网页三剑客已经不能满足需求了,那前端开发究竟要学习什么技术呢?网页最 主要由3部分组成:结构.表现和行为.网页现在新的标准 ...

  7. PhpStorm license server(版权许可服务器)在线激活服务器集群列表

    原文链接:https://bingyishow.top/easy/55.html 服务器列表 序号 服务器(域名) 状态 1 http://www.yuanzhaoyi.cn 在线 2 http:// ...

  8. [LeetCode]42. 接雨水(双指针,DP)

    题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下, ...

  9. 高可用集群之keepalived+lvs实战

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  10. Spring boot +Thymeleaf 搭建springweb

    对接天猫精灵的时候需要有网关服务器方提供几个页面,服务器已经有了,spring boot的 纯后台的,就加了Thymeleaf   jar包添加几个页面跳转 maven配置 <!-- 引入thy ...