![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 92
若_思
当时代抛弃你的时候,连再见也不会说一声
展开
-
C++ 模仿实现Java SpringMVC框架中Controller
背景之前有很长一段时间学过Java的SpringMVC框架,被它的简洁优雅所感动。后面从事了C++开发,遇到相识的开发场景总会联想到Java的框架上,本文就分享一下如何用C++模仿实现SpringMVC中Controller的功能效果。分析与实现我们先来看看SpringMVC是怎么来写Controller的@RestControllerpublic class HelloWorldController { @RequestMapping("/hello") public Strin原创 2021-02-22 00:47:44 · 2334 阅读 · 1 评论 -
分布式事务的分析与解决方案的总结
目录什么是事务什么是分布式事务最终一致性分布式事务详解分布式事务解决方案TCC与XA/JTA对比什么是事务事务由单独单元的一个或者多个SQL语句组成,在这个单元中,每个语句相互依赖,而整个单元作为一个不可分割的整体。如果单元中某条SQL语句执行失败或者产生错误,整个单元就会回滚,所有受影响的数据将会返回到事务开始以前的状态。如果单元中所有的SQL都执行成功,则事务被顺利执行。原子性一个事务不可再分割,要么都执行,要么都不执行一致性一个事务的执行会使数据从一个一致状态切换到另一个一致的状态隔离原创 2020-06-14 14:53:48 · 209 阅读 · 0 评论 -
google序列化协议protobuf底层源码分析
目录序列化/反序列化序列化协议需要考虑什么Java自带的序列化类Protobuf序列化Protobuf特性Protobuf核心代码解析序列化/反序列化序列化将对象序列化为二进制数据【字节数组】,一般也将序列化成为编码,主要用于网络传输、数据持久化反序列化将从网络上、磁盘等读取的字节数组还原为原始的对象,一般也将反序列化成为解码,主要用于网络传输对象的解码,一边完成远程调用序列化协议需要考虑什么序列化之后码流大的大小【占用网络带宽】字节长度,这就是金钱序列化与反序列化的性能【cpu资源的原创 2020-06-13 19:25:53 · 646 阅读 · 0 评论 -
C++11 设计模式--模板方法模拟实现Java Spring AOP
目录一:背景二:具体实现三:应用一:背景当进行数据库更新的时候,有以下场景需要处理:1:业务方法执行开始的时候,需要拿到数据库连接,然后开启事务。2:若业务在某个环节抛异常,为了数据库数据的而一致性,需要回滚事务。3:若业务执行无异常,需要提交事务。4:最后无论业务成功或者失败,都需要释放资源。对于这个业务场景,Java Spring框架的AOP可以很方便的对业务方法做拦截处理。Java动态代理也能很方便的实现该需求。而C++没有相对应的特性。本文模仿Java AOP,基于设计模式中的模板方法,原创 2020-05-13 14:41:30 · 681 阅读 · 2 评论 -
C++ SQL语句构建器的实现[与mybatis3使用方式一致]
目录一:简介二:实现三:使用示例一:简介1:有时候我们需要动态生成SQL语句,我们当然可以在代码中直接写出那条SQL语句,然而令人头疼的是对于SQL语句的各种换行,格式化,逗号,AND和OR的处理,都是很容易出错的,对此,需要有一个更加智能的方式方便我们编写SQL语句。2:MyBatis提供了一个好用的工具类帮助我们解决这个问题,其文档地址为:Mybatis SQL 语句构建器本文仿造Mybatis,模仿实现了一个基于C++语言版的SQL语句构建器。二:实现首先需要一个拼接SQL语句的类S原创 2020-05-10 15:49:40 · 1445 阅读 · 1 评论