握草!你竟然不晓得Java中可以用 :: 吗?
原创 后端技术

握草!你竟然不晓得Java中可以用 :: 吗?

方法引用分为三种,可以通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方法引用,通过实例对象::实例方法,如 str::substring 构造方法引用,通过类名::new, 如 User::new
阅读全文
300万数据导入导出优化方案,从80s优化到8s(实测)
原创 后端技术

300万数据导入导出优化方案,从80s优化到8s(实测)

300百万数据的导入导出前景:在项目开发中往往需要使用到数据的导入和导出,导入就是从Excel中导入到DB中,而导出就是从DB中查询数据然后使用POI写到Excel上。写本文的背景是因为在工作中遇到了大数据的导入和导出,问题既然来了逃跑不如干掉它!!!只要这一次解决了,后期遇到同样的问题就好解决了。废话不多说,开始撸起来!!!1传统POI的的版本优缺点比较其实想到数据的导入导出,理所当然的会想到apache的poi技术,以及Excel的版本问题。既然要做导入导出,那么我们就先来大致
阅读全文
SpringBoot 设置动态定时任务,千万别再写死了~
原创 后端技术

SpringBoot 设置动态定时任务,千万别再写死了~

我们在SpringBoot项目中经常需要使用定时任务,不过由于要借助cron表达式且都需药提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。 经过网上搜索学习后,特此记录如何在SpringBoot项目中实现动态定时任务。 因为只是一个demo,所以只引入了需要的依赖:
阅读全文
select......for update会锁表还是锁行。
转载 后端技术

select......for update会锁表还是锁行。

select查询语句是不会加锁的,但是selectforupdate除了有查询的作用外,还会加锁呢,而且它是悲观锁。那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。没用索引/主键的话就是表锁,否则就是是行锁。验证:建表sql//id为主键//name为唯一索引CREATETABLE`user`( `id`INT(11)NOTNULLAUTO_INCREMENT, `name`VARCHAR(255)DEFAULTNULL,.
阅读全文
重复提交解决方案
原创 后端技术

重复提交解决方案

产生原因 由于重复提交或网络重发 按钮提交点击两次 点击了刷新 使用浏览器后退按钮重复之前的操作,导致重复提交表单 浏览器重复的http请求 nginx重发 分布式RPC的重试,如Mq幂等性问题 解决方案 这里主要分为前端和后端
阅读全文
Java8 一行代码解决了空指针问题,完美~
原创 后端技术

Java8 一行代码解决了空指针问题,完美~

JAVA8之妙用Optional解决判断Null为空的问题引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPoint...
阅读全文
Kafka 为什么会丢消息?
转载 后端技术

Kafka 为什么会丢消息?

在分布式系统中,如果两个节点之间存在数据同步,就会带来数据一致性的问题。 消息生产端发送消息到 MQ 再到消息消费端需要保证消息不丢失。 所以在使用 MQ 消息队列时,需要考虑这 3 个问题: 如何知道有消息丢失? 哪些环节可能丢消息? 如何确保消息不丢失?
阅读全文
本文目录
    Loading...