Vertx与Spring配合完成DML操作
服务启动:
public static void main( String[] args ) {
ApplicationContext context = new AnnotationConfigApplicationContext(SimpleSpringConfiguration.class);
final Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new SpringSimpleVerticle(context));
vertx.deployVerticle(new ServerVerticle());
}
EventBus接受给Service:
public class SpringSimpleVerticle extends AbstractVerticle { public static final String ALL_PRODUCTS_ADDRESS = "example.all.products"; private final ObjectMapper mapper = new ObjectMapper();
private final ProductService service; public SpringSimpleVerticle(final ApplicationContext context) { service = (ProductService) context.getBean("productService"); } private Handler<Message<String>> allProductsHandler(ProductService service, String name) {
return ms2g -> vertx.<String>executeBlocking(future -> {
try {
future.complete(mapper.writeValueAsString(service.getAllProducts(ms2g.body())));
} catch (JsonProcessingException e) {
System.out.println("Failed to serialize result");
future.fail(e);
}
},
result -> {
if (result.succeeded()) {
ms2g.reply(result.result());
} else {
ms2g.reply(result.cause().toString());
}
});
} @Override
public void start() throws Exception {
super.start(); System.out.println("<<<<<<<<<<<<<<<<<<<<<<< CONSUMER >>>>>>>>>>>>>>>>>>>>>>>>>");
vertx.eventBus().<String>consumer(ALL_PRODUCTS_ADDRESS).handler(allProductsHandler(service, "message")); }
}
端口监听:
@Service
public class ProductService { @Autowired
private ProductRepository repo; public List<Product> getAllProducts(String productId) {
System.out.println("productid : " + productId);
return repo.findAll();
} public void getProduct(String productId) {
System.out.println("productid : " + productId);
} }
结论:
DML操作基本都是类似的做法,但是观念的改变其实很大,传统烟囱的方式=》基于消息、事件的方式转移
Vertx与Spring配合完成DML操作的更多相关文章
- Vertica并发DML操作性能瓶颈的产生与优化(转)
文章来源:中国联通网研院网优网管部IT技术研究团队 作者:陆昕 1. 引言 众所周知,MPP数据库以其分布式的超大存储能力以及列式的高速汇总能力,已经成为大数据分析比不可少的工具.Vertica就是这 ...
- salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...
- Sql Server之旅——第十站 看看DML操作对索引的影响
我们都知道建索引是需要谨慎的,当只有利大于弊的时候才适合建,我们也知道建索引是需要维护成本的,这个维护也就在于DML操作了, 下面我们具体看看到底DML对索引都有哪些内幕.... 一:delete操作 ...
- Oracle DBLINK 抽数以及DDL、DML操作
DB : 11.2.0.3.0 原库实例orcl:SQL> select instance_name from v$instance; INSTANCE_NAME--------------- ...
- 大批量DML操作应该注意什么?
问:大批量DML操作应该注意什么? 答:大批量DML操作可能会撑爆undo表空间,导致数据库挂起.因此我们应该设置一个合适的undo表空间,或对DML操作的分批提交.
- 14.6.3 Grouping DML Operations with Transactions 组DML操作
14.6.3 Grouping DML Operations with Transactions 组DML操作 默认情况下,连接到MySQL server 开始是以启动自动提交模式, 会自动提交每条S ...
- PL/SQL“ ORA-14551: 无法在查询中执行 DML 操作”解决
环境 Oracle 11.2.0 + SQL Plus 问题 根据以下要求编写函数:将scott.emp表中工资低于平均工资的职工工资加上200,并返回修改了工资的总人数.PL/SQL中有更新的操作, ...
- 菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构
前几天向大家介绍了一种用工具类生成数据表的方法,只是之前的方法须要使用一个跟项目关系不大的工具类.不免让人认为有些多余,所以呢.今天再向大家介绍一种方法.即Hibernate与Spring配合生成表结 ...
- Oracle的闪回技术--闪回错误的DML操作
提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...
随机推荐
- 10年前错过比特币,如今有斯坦福区块链项目pi币,对标btc,手机免费挖矿详细教程。
这一个斯坦福几个博士创业者做一个项目,目前还处于早期阶段,除了每天点一下挖矿之外,貌似不需要其他的操作,不需要耗费流量资源和手机大量的运算能力,就是一个安静的App而已....国内目前知道的人还不太多 ...
- 逆向破解之160个CrackMe —— 027
CrackMe —— 027 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- SpringBoot中使用Jackson将null值转化为""或者不返回的配置
第一种方式:SpringBoot中使用Jackson将null值转化为"" 前言:在实际项目中难免会遇到null值的出现,但是我们转json时并不希望出现NULL值,而是将NULL ...
- Free Professional Resume Examples and Writing Tips
https://www.thebalancecareers.com/free-resume-examples-and-writing-tips-2063596 Do you need to write ...
- this指向问题(改变它的指向)
这个问题倒不是面向对象的,而是今天遇到js面向对象的时候一个例子的时候突然遇到了,call()方法,然后自己突然发现竟然忘记了,查了之后整理如下: xxx.call((对象名),参数a,参数b) xx ...
- Linux中一些命令的区别
1. yum provides 和 yum search provides是在文件中查找软件,类似于rpm -qf: search是查找软件包或其描述的关键字. 2. gzip 和 bzip2 对 ...
- 从零和使用mxnet实现线性回归
1.线性回归从零实现 from mxnet import ndarray as nd import matplotlib.pyplot as plt import numpy as np import ...
- IntelliJ IDEA 插件推荐
1.GenerateAllSetter 自动生成类set方法 2.GsonFormat 根据JSON创建实体 3.Lombok plugin 简化代码 4. .ignore 忽略git提交文件 5.A ...
- Hotspot的Metaspace
Meta Space是JDK1.8引入的,在JDK1.8使用的是方法区,永久代(Permnament Generation).元空间存储的是元信息,使用的是操作系统的本地内存(Metaspace与Pe ...
- Redis读写分离技术解析
背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量.这种架构读写请求都在master上完成, ...