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项目 ...
随机推荐
- Resources.UnloadUnusedAssets
2017.11.7更新: 其实这个函数就是顾名思义,关键是理解AssetBundle, Asset, GameObject, 资源等之间的关系,参考此文即可: http://www.cnblogs.c ...
- 【好文分享】为什么强烈禁止开发人员使用isSuccess作为变量名
原文来自阿里云hollies:https://developer.aliyun.com/article/701413 简介: 在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提 ...
- 痞子衡嵌入式:IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞问题的分析解决经验. 事情缘起恩智浦官方论坛上的一 ...
- WebSphere MQ常用命令及配置
WebSphere MQ常用命令及配置 (2012-06-23 23:09:16) 标签: mq命令 杂谈 分类: MQ [导读]WebSphere MQ常用命令及配置 一,队列管理命令 1,创建队列 ...
- 2017年PHP程序员未来路在何方(转)
PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...
- [LeetCode]Sql系列2
题目 1205. 每月交易II Transactions 记录表 +----------------+---------+ | Column Name | Type | +-------------- ...
- Hadoop入门学习整理(三)
1.Hive 的安装 下载tar包,并且要注意和Hadoop版本兼容. 下载 -----> 传输 -------> 解压 即可. 然后配置环境变量和相关配置信息. 参考: ...
- Java语言的优势
首先, Java语言是一种纯粹的面向对象的编程语言.这样就决定了Java语言更能直接客观地反映现实生活中的对象,因此Java语言更适合大型的复杂系统开发. 其次, Java语言是一种平台无关的语言. ...
- RFID了解
转载自为什么大家都抛弃传统标签选择RFID电子标签? rfid电子标签是一种非接触式的自动识别技术,它通过射频信号来识别目标对象并获取相关数据,识别工作无需人工干预,作为条形码的无线版本,RFID技术 ...
- SpringBoot 配置的加载
SpringBoot 配置的加载 SpringBoot配置及环境变量的加载提供许多便利的方式,接下来一起来学习一下吧! 本章内容的源码按实战过程采用小步提交,可以按提交的节点一步一步来学习,仓库地址: ...