服务启动:

1   public static void main( String[] args ) {
2     ApplicationContext context = new AnnotationConfigApplicationContext(SimpleSpringConfiguration.class);
3     final Vertx vertx = Vertx.vertx();
4     vertx.deployVerticle(new SpringSimpleVerticle(context));
5     vertx.deployVerticle(new ServerVerticle());
6   }

EventBus接受给Service:

 1 public class SpringSimpleVerticle extends AbstractVerticle {
 2
 3     public static final String ALL_PRODUCTS_ADDRESS = "example.all.products";
 4
 5
 6     private final ObjectMapper mapper = new ObjectMapper();
 7     private final ProductService service;
 8
 9     public SpringSimpleVerticle(final ApplicationContext context) {
10
11         service = (ProductService) context.getBean("productService");
12
13     }
14
15     private Handler<Message<String>> allProductsHandler(ProductService service, String name) {
16         return ms2g -> vertx.<String>executeBlocking(future -> {
17                     try {
18                         future.complete(mapper.writeValueAsString(service.getAllProducts(ms2g.body())));
19                     } catch (JsonProcessingException e) {
20                         System.out.println("Failed to serialize result");
21                         future.fail(e);
22                     }
23                 },
24                 result -> {
25                     if (result.succeeded()) {
26                         ms2g.reply(result.result());
27                     } else {
28                         ms2g.reply(result.cause().toString());
29                     }
30                 });
31     }
32
33     @Override
34     public void start() throws Exception {
35         super.start();
36
37         System.out.println("<<<<<<<<<<<<<<<<<<<<<<< CONSUMER >>>>>>>>>>>>>>>>>>>>>>>>>");
38         vertx.eventBus().<String>consumer(ALL_PRODUCTS_ADDRESS).handler(allProductsHandler(service, "message"));
39
40     }
41 }

端口监听:

 1 @Service
 2 public class ProductService {
 3
 4     @Autowired
 5     private ProductRepository repo;
 6
 7     public List<Product> getAllProducts(String productId) {
 8         System.out.println("productid : " + productId);
 9         return repo.findAll();
10     }
11
12     public void getProduct(String productId) {
13         System.out.println("productid : " + productId);
14     }
15
16 }

结论:

DML操作基本都是类似的做法,但是观念的改变其实很大,传统烟囱的方式=》基于消息、事件的方式转移

转载于:https://www.cnblogs.com/endv/p/11339301.html

Vertx与Spring配合完成DML操作相关推荐

  1. Mybatis Plus 入门 简单的CRUD 使用详解 条件查询 分页查询 DML操作 MP代码生成器

    Mybatis Plus入门 MP是 MybatisPlus,简称MP,是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变.MP为简化开发.提高效率而生. 它已经封装好了 ...

  2. oracle中dml操作,Oracle的DML操作过程

    DML操作,Oracle所有进程配合执行的过程成! 用户将DML操作的语句通过进程传输给sga中的buffer cache,然后在buffer cache中对所更改的数据块进行更新操作,然后首先由lo ...

  3. Hive(基础)数据类型、DDL、DML操作、分区和分桶

    Hive数据类型.DDL.DML操作.分区和分桶 1.Hive数据类型 1.1.基本数据类型 1.2.集合数据类型 1.3.数据类型转换 1.3.1.隐式数据类型转换 1.3.1.使用 CAST 操作 ...

  4. 第一讲SQL命令的DDL和DML操作讲解

    知识点: 一.sql命令DDL(结构化操作) 二.sql命令DML操作(增删改查) 1.sql命令DDL(结构化操作) 1.1表添加字段: alter table 表名 add 列定义 如: alte ...

  5. 23-hadoop-hive的DDL和DML操作

    跟mysql类似, hive也有 DDL, 和 DML操作 数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ ...

  6. 菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构

    前几天向大家介绍了一种用工具类生成数据表的方法,不过之前的方法需要使用一个跟项目关系不大的工具类.不免让人觉得有些多余,所以呢,今天再向大家介绍一种方法.即Hibernate与Spring配合生成表结 ...

  7. Oracle的闪回技术--闪回错误的DML操作

    提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...

  8. 查询添加条件_035 JAVA-MySQL 约束、DML操作(增改删)、事务处理、查询数据

    MySQL 中的约束 约束类型 : • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK • 检 ...

  9. oracle:对视图DML操作

    一.对视图进行DML操作 1.创建一个视图v_test create or replace view v_test as select *from test where c_sec_code = '0 ...

  10. mysql DML操作、关联查询、联合查询、聚合函数使用

    目录 DML操作 关联查询.联合查询 按条件查询.聚合函数使用 DML操作 CREATE DATABASE db2USE db2; CREATE TABLE stu(sid INT PRIMARY K ...

最新文章

  1. LaTeX技巧 twocolumn 双栏
  2. html 启动bat脚本,Windows开机自启动bat脚本设置方法
  3. view里文书删除时报错的解决案
  4. 一天搞定CSS:表单(form)--20
  5. 计算机安全设,默认的安全性还不够!这几个保护计算机的步骤要设置好
  6. 加载不了ajax,简单的jquery ajax内容加载不起作用
  7. 也许,这会是一个好的开始
  8. 计算机office2010excel试题,将计算机二级Office2010Excel试题中会出现的所有公式汇总...
  9. Playmaker与iTween
  10. python滚动广告牌,Discovery Live 参数化建模案例-设计广告牌风场选址
  11. 雨天的尾巴——LCA+树上差分+动态开点+线段树合并
  12. MYSQL 金额转大写中文
  13. 比尔盖茨10大经典语录英文版
  14. python xlsx转换成txt
  15. Nginx缓存、静态文件缓存配置
  16. 2020年中国城市地下空间市场现状分析,东部地区供需市场依旧领先「图」
  17. oracle 数据字典画报,Oracle 数据字典查询
  18. 在1688上,中国工厂正在「被看见」
  19. mac版思维导图软件,思维导图怎么画
  20. Cache(三):cache的常见名词与Cache一致性问题简介

热门文章

  1. 爬虫第四章 单线程+多任务异步协程
  2. ASP.NET MVC Razor视图引擎
  3. CSS规则重要性以及继承、层叠
  4. elasticsearch2.x优化小结(单节点)
  5. axure 7.0 7.0.0.3142 简体中文版(附汉化包注册)
  6. [hdu 1003] Max Sum
  7. 【转】掌握java枚举类型(enum type)
  8. PHP设计模式——抽象工厂
  9. 2019东南大学研究生课程计算机网络安全
  10. Ubuntu 14.04 更换阿里云源