编程方法
拔剑抉云
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC并发编程工具包之Semaphore的使用
我们在工作中,通常会遇这样的问题,即因为大量的数据突然在某个时间里进入系统,造成数据库压力过大。对于这种问题,我们可以使用诸如MQ等中间件的方式来进行l流量削峰,除此之外,还有什么办法呢?首先我们可以想到锁,即在处理这些请求的方法上加上一个锁(比如synchronized关键字),让程序慢慢的一个一个处理,这样就不会造成数据库压力过大了。但是这样的话,处理的也太慢了吧。比如有10000个请求,即便这段处理程序1ms就完成,到最后一个请求处理完都过去10s了。那么有没有方法,让程序不是一个一个处理但是还是原创 2020-08-31 10:58:01 · 217 阅读 · 0 评论 -
一步步的利用设计模式优化存在大量if-else语句的代码
一般情况下,我们在写代码的时候,会根据传入的不同参数选择不同的处理方式,比如这样public String eatLunch(String week) { String food = null; if ("Monday".equals(week)) { food = "肯德基"; } else if ("Tuesday".equals(week)) { food = "麦当劳"; } els原创 2020-08-27 18:23:59 · 1489 阅读 · 1 评论 -
在SpringBoot项目中使用JPA实现简单的数据库操作
集成准备首先确定使用SpringData Jpa,那么集成工作如下1. pom文件引入依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <rela原创 2020-07-28 10:02:11 · 577 阅读 · 0 评论 -
记录一个用Date类型接收数据库timestamp值所引发的问题
因为业务原因,同事做了一个判断当前时间和数据库表中某一行数据创建时间的比较,当创建时间和当前时间相比超过5分钟的时候就执行下一步操作,具体比较代码如下 private boolean getDatePoor(Date start, Date end, long time) { boolean flag = false; long diff = end.getTime() - start.getTime(); long sec = diff / 10原创 2020-07-20 16:27:26 · 2598 阅读 · 0 评论 -
使用工具(Postman)能调通但使用代码调不通的问题分析及解决方法
问题描述在和第三方对接开发接口的时候,出现了一个问题,即使用Postman发送报文过去给对方,对方能够返回结果过来,但是使用代码发送报文过去,却返回500错误。首先排除不是调用地址的问题,然后再排除不是调用方式的问题(即post请求变为了get请求)。然后再看看是不是报文内容有所不同,但是在代码里面报文发送之前就已经有日志打印了,发现报文内容和Postman里面是一模一样,那问题到底出现在哪里呢?问题分析找对方的人沟通,我代码发送请求给对方时,让他们看看他们收到的报文内容。结果傻眼了,用Post原创 2020-05-24 15:39:57 · 27839 阅读 · 1 评论 -
Java操作redis的工具类
目录准备工作代码通用操作String(字符串)类型操作Hash(哈希)操作List(列表)操作Set(集合)操作准备工作首先引入pom依赖<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-r...原创 2019-12-28 12:59:46 · 885 阅读 · 1 评论 -
SpringBoot工程启动时将数据库参数表参数加载到内存中
目录为什么需要将参数存入缓存?以及选择何种方式如何在项目启动的时候初始化数据如何实现定时刷新缓存参数为什么需要将参数存入缓存?以及选择何种方式为了避免频繁的查询数据库,我们需要将参数表的参数做成缓存,缓存的方式有两种,一种是加载到工程的内存中,另一种是加载到redis中。因为微服务的服务太多,如果用前一种方法的话,就需要多个服务都要初始化参数,而且如果参数变了,需要用到参数的服...原创 2019-12-28 10:49:34 · 3721 阅读 · 2 评论
分享