spring
一只拖后腿的程序猿
这个作者很懒,什么都没留下…
展开
-
动态定时任务调度
一、 为什么要使用动态定时任务现在的系统早已不是仅仅由增删改查组成,任务的定时调度和执行也是程序的标配。定时任务相当于闹钟,在什么时候做什么事情。定时任务实现方式,很多人都有不同的方式,基础无外乎以下四种:1、 JDK的Timer类2、 JDK的ScheduledExecutorService3、 Spring Task4、 Quartz在使用过程中,用的最多的是SpringTask的XML配置,配置简单,也较好理解。但是有个缺点,在运行过程中想改变某个任务的执行时间频率或者是再增加/删除一个任原创 2020-05-16 12:09:51 · 3517 阅读 · 0 评论 -
spring 常用方法
回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();InputStream 复用 //转换 private ByteArrayOutputStream toByteArrayOutputStream(InputStream input) throws IOException...原创 2018-07-28 11:07:53 · 1822 阅读 · 0 评论 -
BigDecimal/Long 前后端交互失去精度解决方法
问题发现一个诡异的现象,数据库存储的bigDecimal类型的数据,经过springboot返回给前端数据丢失了几位小数,例如 222233334444.12345678(后端)->222233334444.123456(前端)。经过查资料,在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在BigDecimal长度大于...原创 2018-11-21 17:23:56 · 18389 阅读 · 5 评论 -
HttpServletResponse下载文件
HttpServletResponse对象代表服务器的响应,这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。使用HttpServletResponse输出文件,浏览器会解析内容,完成下载。核心代码如下:public static void export(String fileContent, String downloadFile, HttpServletResponse ...原创 2018-11-23 22:43:23 · 1842 阅读 · 0 评论 -
基于Redis的简单分布式锁(Jedis和RedisTemplate)
前言在单应用的情况下,需要对某个资源进行加锁经常会用到 synchronized 关键字。但是在集群的环境下,synchronized 只能进行单台机器的资源锁定。举例一个场景,账户表,该账户不断有人往里面转钱,账户余额需要不断的累加,表里有version字段。在高并发情况下,多个进程读取了同一个version的账户记录,只能有一条记录能成功更改。这里有多种解决方式,一种是获取账户记录之前先获得...原创 2018-11-23 11:29:30 · 387 阅读 · 0 评论