SpringBoot...

jpa save(),saveAll()替代方案,mysql的insert并发问题(on DUPLICATE KEY UPDATE)

一、jpa save() 使用springdata jpa的save()方法在存储数据时,都会先执行select语句,再执行insert语句,相当于每存储一条数据,就会执行两次sql,效率非常慢; saveAll()也一样,查看源码可以看出调用的还是save(),这样就在数据量上来时候出现了瓶颈; 网上搜索到的一些解决方法如下(实际并不一...

SomeQuestions

SpringBoot中使用@scheduled定时执行多任务时需要注意的坑

    SpringBoot使用@scheduled定时执行任务的时候是在一个 单线程 中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成。也就是会造成一些任务无法定时执行的错觉     可以通过如下代码进行测试: ...

Java

Springboot打jar包分离依赖lib、配置文件

部署环境 window 10 centOS 7.4 其他版本没有尝试,应该也是可以的 POM.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.or...

SpringBoot...

springboot利用swagger2构建api文档

springboot利用swagger2构建api文档 现如今为了前后台更好的对接,也为了以后交接方便,基本上都有要求写API文档。 手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理 Swagger...

SpringBoot...

SpringBoot中定时任务使用配置文件配置执行时间

SpringBoot中定时任务使用配置文件配置执行时间 在传统的Spring项目中使用Spring Task设置定时任务,其执行时间配置到applicationContext.xml中指定执行方法即可;但是由于现在换做了SpringBoot框架,虽然Spring Task是集成在SpringBoot中的,但是大多是用注解直接把执行之间cron声明在了方法名上,这样...

SpringBoot...

SpringBoot定时任务的几种实现方式

SpringBoot定时任务的几种实现方式 定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 ScheduledExecutorServi...