Vertx与Spring配合完成DML操作
服务启动:
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操作相关推荐
- Mybatis Plus 入门 简单的CRUD 使用详解 条件查询 分页查询 DML操作 MP代码生成器
Mybatis Plus入门 MP是 MybatisPlus,简称MP,是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变.MP为简化开发.提高效率而生. 它已经封装好了 ...
- oracle中dml操作,Oracle的DML操作过程
DML操作,Oracle所有进程配合执行的过程成! 用户将DML操作的语句通过进程传输给sga中的buffer cache,然后在buffer cache中对所更改的数据块进行更新操作,然后首先由lo ...
- Hive(基础)数据类型、DDL、DML操作、分区和分桶
Hive数据类型.DDL.DML操作.分区和分桶 1.Hive数据类型 1.1.基本数据类型 1.2.集合数据类型 1.3.数据类型转换 1.3.1.隐式数据类型转换 1.3.1.使用 CAST 操作 ...
- 第一讲SQL命令的DDL和DML操作讲解
知识点: 一.sql命令DDL(结构化操作) 二.sql命令DML操作(增删改查) 1.sql命令DDL(结构化操作) 1.1表添加字段: alter table 表名 add 列定义 如: alte ...
- 23-hadoop-hive的DDL和DML操作
跟mysql类似, hive也有 DDL, 和 DML操作 数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ ...
- 菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构
前几天向大家介绍了一种用工具类生成数据表的方法,不过之前的方法需要使用一个跟项目关系不大的工具类.不免让人觉得有些多余,所以呢,今天再向大家介绍一种方法.即Hibernate与Spring配合生成表结 ...
- Oracle的闪回技术--闪回错误的DML操作
提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...
- 查询添加条件_035 JAVA-MySQL 约束、DML操作(增改删)、事务处理、查询数据
MySQL 中的约束 约束类型 : • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK • 检 ...
- oracle:对视图DML操作
一.对视图进行DML操作 1.创建一个视图v_test create or replace view v_test as select *from test where c_sec_code = '0 ...
- mysql DML操作、关联查询、联合查询、聚合函数使用
目录 DML操作 关联查询.联合查询 按条件查询.聚合函数使用 DML操作 CREATE DATABASE db2USE db2; CREATE TABLE stu(sid INT PRIMARY K ...
最新文章
- LaTeX技巧 twocolumn 双栏
- html 启动bat脚本,Windows开机自启动bat脚本设置方法
- view里文书删除时报错的解决案
- 一天搞定CSS:表单(form)--20
- 计算机安全设,默认的安全性还不够!这几个保护计算机的步骤要设置好
- 加载不了ajax,简单的jquery ajax内容加载不起作用
- 也许,这会是一个好的开始
- 计算机office2010excel试题,将计算机二级Office2010Excel试题中会出现的所有公式汇总...
- Playmaker与iTween
- python滚动广告牌,Discovery Live 参数化建模案例-设计广告牌风场选址
- 雨天的尾巴——LCA+树上差分+动态开点+线段树合并
- MYSQL 金额转大写中文
- 比尔盖茨10大经典语录英文版
- python xlsx转换成txt
- Nginx缓存、静态文件缓存配置
- 2020年中国城市地下空间市场现状分析,东部地区供需市场依旧领先「图」
- oracle 数据字典画报,Oracle 数据字典查询
- 在1688上,中国工厂正在「被看见」
- mac版思维导图软件,思维导图怎么画
- Cache(三):cache的常见名词与Cache一致性问题简介