Solon集成(02)- 轻松吃下小馒头 Dubbo
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的更多相关文章
- html+css+js实现狼吃羊小游戏
html+css+js实现狼吃羊小游戏 一.总结 一句话总结:给动的元素下标记,这里表现为将要活动的标签动态增加class,这是一种很好的思想. 1.如何实现棋子走动的时候简单精确定位? 用重构坐标系 ...
- Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述
Android-贪吃蛇小游戏-分析与实现-Kotlin语言描述 Overview 本章的主要的内容是贪吃蛇小游戏的分析和实现,关于实现的具体代码可以在,文章底部的github的链接中找到. 整个游戏通 ...
- PacMan 04——道具生成吃下道具怪物的移动
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- 谈Vite在Electron环境下吃花卷拉馒头的现象
缘起 在Electron的渲染进程中(也就是页面代码中), 我们常常使用process.env来携带一些环境变量, 比如HTTP服务地址的基质,本地静态资源的路径等 这样做主要有两个目的 一个是方便开 ...
- PHP+memcache扩展(集成环境wampserver环境下)
按照别人的步骤,安装和配置后没有任何的错误提示!在计算机服务里面也看到memcached服务已经开启,但是phpinfo里面就是没有memcache已经安装成功的信息!后来才发现原来是没有开启wamp ...
- 【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 我们一同在前几期的博客中已经学到了很多pygame的基本知识了,现在该做个小游戏实战一下了. 前几期博客链接 ...
- Android之RecyclerView轻松实现下拉刷新和加载更多
今天研究了下RecyclerView的滑动事件,特别是下拉刷新和加载更多事件,在现在几乎所有的APP显示数据列表时都用到了.自定义RecyclerView下拉刷新和加载更多听上去很复杂,实际上并不难, ...
- (转载)Windows下小狼毫输入法(Rime)的安装与配置(含导入搜狗词库)
div id="cnblogs_post_body" class="blogpost-body"> 最近彻底烦透了搜狗拼音输入法的各种流氓行为,自动升级不 ...
- ASP.NET Web API实践系列02,在MVC4下的一个实例, 包含EF Code First,依赖注入, Bootstrap等
本篇体验在MVC4下,实现一个对Book信息的管理,包括增删查等,用到了EF Code First, 使用Unity进行依赖注入,前端使用Bootstrap美化.先上最终效果: →创建一个MVC4项目 ...
随机推荐
- Spring Cloud:Consul基础知识
一.基本概念 Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go开发. 它提供微服务系统中的服务治理.配置中心.控制总线等功能. 服务发现:提供HTTP和DNS两种发 ...
- 石子合并2(环形求最优解 区间dp)
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- log4j日志文件输出保存
og4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=app.log log4j.appe ...
- js error 错误处理
(new) Error([message[, fileName[,lineNumber]]]) 单独定义Error()错误,函数继续进行 当像函数一样使用 Error 时 -- 如果没有 new,它将 ...
- Activiti7 流程部署
首先先绘制一个流程图 创建bpmn文件 然后绘制好节点 然后修改节点信息 指定负责人 点击背景,修改ID和名称 保存 然后重命名成xml 使用diagram打开 导出png 然后包xml改回bpmn ...
- Java中构建长字符串的四种模式
回字有四种写法,构建字符串也有四种方式. 用+号最快,第二第三种可读性好,第四种是log4j自有的.下面请见代码: package logbackCfg; import java.text.Messa ...
- ascii unicode utf-8 url编码
ascii 编码 计算机内部,所有信息最终都是一个二进制值 上个世纪60年代,美国制定了一套字符编码ascii ascii 编码就是定义:英语字符与二进制位之间的关系 unixcs unicode编码 ...
- Tcahce Stashing Unlink Attack
今年校赛有点可惜,最后两道质量不错的pwn每做出来,总的来说还是我太菜了,希望下次校赛能AK pwn题.不过这次校赛也没有白打,还是有学到新的东西的.在这里感谢出题的学长. glibc-2.29以后u ...
- Python3实现zip分卷压缩
Python实现zip分卷压缩 使用 zipfile 库 查看 官方中文文档 利用 Python 压缩 ZIP 文件,我们第一反应是使用 zipfile 库,然而,它的官方文档中却明确标注" ...
- $\TeX$ Gyre 字体安装过程与问题解决
目录 安装过程 1. 下载字体包 2. 安装字体 3. 测试范例文件 本文地址 https://www.cnblogs.com/oberon-zjt0806/p/13672426.html 本文只是一 ...