自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 [mongo]JPA继承SimpleMongoRepository实现Springboot整合Mongo JPA复杂条件分页查询

因为MongoRepository对复杂查询并不友好,所以继承了其实现类增加了一些新的查询方法;重写MongoRepository的接口实现参照博文实现:[https://www.cnblogs.com/sweetchildomine/p/7732766.html](https://www.cnblogs.com/sweetchildomine/p/7732766.html)需要完成的功能:根据是否删除(isDeleted)、时间(createTime)、用户id(userId)三个条件动态的查询结

2022-03-03 11:08:30 2365 1

原创 [redisson]使用redisson限流器Ratelimiter结合自定义注解及AOP实现限流

使用redisson限流器Ratelimiter实现限流,保证服务正常可用定义自定义注解package com.liurui.study.redis.currentlimit.annotation;import org.redisson.api.RateIntervalUnit;import org.redisson.api.RateType;import org.springframework.web.bind.annotation.Mapping;import java.lang.a.

2022-02-25 12:58:06 2211

原创 [redis]Redis ZSet排序问题(排名实现按时间顺序排布)

背景:需求:承接之前mongo通过存储到mongo里面的战绩表计算出用户排名并将排名信息落库到mysql,但是由于用户排名需要频繁读取且其后续在计算排名后排名不会发生变动,所以将用户排名放到了redis,采取的zset的数据格式,以用户id为value,获得的总分为score,且相同分数但是先达到此分数的人要排名在前;问题:redis zset分数score相同时,并不会根据插入的时间排序,而是通过其字典表根据value决定排名的先后,不满足前面说到的先达到此分数的人要排名在前。ps:承接前文

2021-11-29 15:02:23 8553

原创 [mysql]mysql通过on duplicate key update实现批量插入或更新

定时更新或插入用户的排名表数据,由于数据量的缘故,导致数据量比较大,采取当条的insertOrUpdate比较耗时,且在多线程并行插入的时候容易导致索引冲突报错,从而数据插入失败,这里采用创建联合索引和on duplicate key update来实现,需要注意的是,此方法会锁表,导致其他的表操作需要等待,若操作的表变更比较频繁,建议另寻其他方案表结构-- auto-generated definitioncreate table user_activity_ranking( id .

2021-11-25 14:07:37 1436

原创 [mongoDB] MongoTemplate实现分组聚合分页倒序条件查询

背景:为了统计参加活动的用户总分排名信息条件:1、限制前一千名;2、用户的战绩总分必须达到一千分;3、时间不能超过XXXX,超过此时间获得的得分不计入排名计算中;4、不允许并列一千,如分数相同,取先达到一千分的用户;5、用户的战绩数据存储在mongoDB。战绩存储结构:{ "_id" : NumberLong(2111050000447937), "activityId" : NumberLong(5), "userId" : NumberLong(211103

2021-11-11 18:06:27 4698 1

原创 [RabbitMQ] unable to connect to epmd (port 4369) on LAPTOP-OEEU0NUN: address (cannot connect to host

详细报错添加域名 (本地机器名:LAPTOP-OEEU0NUN) 代理并telnet4369端口正常:查看所属用户.erlang.cookie和系统目录(C:\Windows\System32\config\systemprofile)下.erlang.cookie一致,rabbitmq-service remove后install并start仍然无解,修改rabbitmq安装目录下的sbin目录下的rabbitmq-env.bat文件,增加set NODENAME=rabbit@localhost:

2021-08-10 15:11:47 2851 2

转载 [idea启动无反应]com.intellij.ide.plugins.StartupAbortedException: UI initialization failed

idea2020.2.3清楚缓存并重启后idea无法打开解决策略(此策略仅适用于部分情况)查看idea启动日志(默认路径:C:\Users\用户名\AppData\Local\JetBrains\IntelliJIdea2020.3\log\idea.log):2021-07-30 16:44:10,985 [ 0] INFO - #com.intellij.idea.Main - ---------------------------------------------.

2021-07-30 17:14:58 6279 3

原创 [企业微信二次开发]自建应用API获取媒体文件(初版)

仅获取文件流并转换为字节数组:import java.net.URL;//仅获取文件流并转换为字节数组:String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=xxxxxxxxxxxxxxxxxxx&media_id=xxxxxxxx"; InputStream in; byte[] image = new byte[0];try { URL uri = new URL(url

2021-04-21 16:10:30 729 1

原创 [lambda]使用forEach导致项目启动报错java.lang.ArrayIndexOutOfBoundsException: 20993

web项目应用开发时,在一个bean中定义了一个实例方法,并使用forEach对实例方法中的一个局部List集合遍历,产生如下报错完整报错信息Failed startup of context org.mortbay.jetty.webapp.WebAppContext@1a6f5124{/vipSystem,D:\gaotime-vip-online\gaotime-admin\webapps\vipSystem\src\main\webapp}java.lang.ArrayIndexOutOf.

2021-04-21 10:53:35 741 1

原创 [oracle]ORA-01722: 无效数字

检验过所有的数据及数据库字段,没有错误数据,没有超出数据限制长度,没有字段格式不匹配。最终发现是由于SQL过长导致的报错,由于是批量新增,导致SQL过长,从而导致该报错。

2021-04-08 16:42:09 1522

转载 [oracle]to_char转换小数点前0丢失问题

前端展示占比时,会使用到to_char函数,oracle直接转换会丢失0。例如to_char(0.4),转换结果为.4,这种不是我们想要的结果。可以考虑to_char(XXX.XX,’FM990.00’),API如下:9代表存在数字则显示数字,没有则显示空格;0代表存在数字则显示数字,没有则显示0;FM 删除9产生的空格;另外,’.’后面多出的9或0均会补0如to_char(111.11,’FM990.00’) 结果为111.11to_char(111.11,’FM990.009’) 结果为

2021-03-17 11:03:23 3880

原创 [oracle]ORA-00600: internal error code, arguments: [qcsfbdnp:1], [], [], [], [], [], [], []

此贴讲该错误和网上的大部分不同,此错误是在特定的技术栈框架下触发的。这里的SQL通过ibatis编写时并不会报错,而仅仅是在mybatis框架下编写才会产生报错。背景1、mybatis采用注解使用merge into对多条数据进行操作:2、由于需要过滤一下U表,增加过滤条件:3、这个时候就报错了:4、此刻很明显的可以定位产生此错误的原因,就是传入参数对U表进行过滤的语句;5、使用自定义的provider类构造SQL语句返回执行:并不会报错,接着手动将数据编入SQL通过oracl.

2021-02-23 15:40:39 861

原创 [企业微信二次开发]不同环境部署

企业微信会话存档功能所需的sdk在不同环境下的存放位置是不一样的,且在Windows环境下打包的sdk文件并不会被maven打包,且由于sdk的不同,在不同的环境下测试需要使用不同的Finance类,即使用不同的Finance静态代码块,所以对Finance类的静态代码块进行了修改。首先,通过System.getProperty(“os.name”) 获取当前操作系统名称,并选用不同的sdk:String os = System.getProperty("os.name"); if (os.in.

2021-02-01 11:19:11 1667 4

原创 [企业微信二次开发]RSA PKCS1私钥解密获取加密消息(JAVA实现)

获取企业微信会话存档内容需要使用RSA PKCS1算法和私钥对str1进行解密在开始编码前,你需要根据你的JAVA版本下载2个JAR文件Bouncycastle的主JAR包bcprov-jdk15on-164.jar和OPENSSL相关JAR包bcpkix-jdk15on-164.jar官网https://www.bouncycastle.org/java.htmlmaven导入:<dependency> <groupId>org.bouncycastl.

2020-12-24 16:35:28 2278 4

原创 [数据结构] 综述

知识来自Java数据机构和算法中文第二版基本知识:数据结构是对计算机内存中(又时在磁盘中)的数据的……种安排。包括数组、链表、栈、二叉树、哈希表等。算法是对机构中的数据进行各种处理的代码程式总称。如:查找一条特殊的数据项或对数据进行排序。数据结构的特性:数据机构优点缺点数组插入快,如果知道下标,可以非常快地的存取查找慢,删除慢,大小固定有序数组比无序的数组查找快删除和插入慢,大小固定栈提供后进先出方式的存取存取其他项很慢队列提供.

2020-12-02 11:33:50 186

原创 [redis]spring整合redis

两种:spring整合redis,springboot整合redisspring整合redis:1、环境及jar包:环境:jdk1.6;spring+springmvc+ibatis+maven;redis3.2;pom.xml:<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId&gt.

2020-09-10 15:52:04 1825

原创 [oracle]oracle批量merge into来实现批量新增并在新增的同时更新满足条件的数据

为了不影响程序性能,想要将一批数据批量加入到oracle,但是有些数据在新增的同时又需要判断是否存在与该数据用户账号和用户部门相同的数据,如果存在,就只对该数据进行更新,而不新增,如果不存在,就新增。为了实现该功能,需要用到oracle的merge into语法:oracle中merge into用法解析注意:使用该语法时,无论是update还是insert后面都不需要加表名去声明,且insert后面也不需要加into,不然就会报错,缺少关键字:在insert后面的所需增加的字段名也不需要采.

2020-09-09 18:06:44 4137

原创 [redis]redis读取 invalid stream header: 7B226163

将存储到redis中的日志信息进行读取,报错,这是由于反序列化错误而导致的报错,存储到redis中的日志的序列化是什么样的,读取的时候序列化也应该相同。存储:redisTemplate.setValueSerializer(new StringRedisSerializer());redisTemplate.opsForZSet().add(GaotimeConstants.INFOPRODUCT_MENU_KEY, listset);读取Set<String> listresu.

2020-09-09 11:19:37 3768

原创 [Java定时任务]使用Java Timer定时将redis里面的数据存储到数据库

为了统计用户使用系统菜单的点击次数,将相应的日志信息存储到数据库中,但是一次一条的插入会导致存储速率缓慢,占用服务器及数据库资源等相关一系列的问题,所以为了避免这种情况,损耗了一定的实时性,将数据先存储至redis,每隔一定将redis里面的数据取出并存储到数据库中,这里记录一下如何在ssm项目中整合Java Timer创建定时任务并启动。1.创建定时任务对象:import java.util.TimerTask;public class RedisTask extends TimerTask{.

2020-09-09 10:24:24 2321

原创 [JSMind]使用JSMind操作生成的思维导图

var data = eval('${data}');$.each(data,function(i, list) { var ls = eval(list); var nodeid = jsMind.util.uuid.newid(); var topic = ls[0].yzname; var parent_node = jm.get_root(); var node = jm.add_node(parent_node, nodeid, topic); jm.set_node_color(n

2020-09-04 11:03:08 4665

转载 [AJAX]通过ajax修改dom元素后无法通过选择器绑定click事件

对html页面中类样式为aclick的dom元素都添加一个click事件,通过$(".aclick").click(function(){})即可绑定,但是进行ajax请求相关数据后,修改的dom元素缺无法绑定该click事件解决方案:

2020-09-04 10:48:34 198

原创 [JS]SCRIP1004:缺少“;“

报错:报错代码:let sortcontent = '${sort}';JS运行环境:ie9报错原因:ie9不支持ES6,去掉let,或者用var声明就好。

2020-09-01 11:29:28 392

原创 [过滤器Filter]在过滤器Filter的初始化方法中获取bean

过滤器的加载时间:过滤器是在程序启动的时候加载的,且仅加载init()方法,当url-pattern过滤的请求被过滤时,仅执行doFilter();当程序关闭时,执行destroy()方法。如何在init()方法中获取bean:需求:由于所做的业务需要在init()方法中初始化bean,而此时bean无法通过@Autowired注入(注入值为null);解决:通过FilterConfig对象获取到ApplicationContext对象,根据ApplicationContext对象获取到对应的be

2020-08-19 16:38:19 972

原创 [ES笔记]持续更新中

单条件查询 //创建查询构建器 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); //分页 queryBuilder.withPageable(PageRequest.of(Integer.parseInt(param.getPageNoStr())-1, Integer.parseInt(param.getPageSizeStr()))); if (!StringUtils.isEmpty(param

2020-08-18 11:29:32 398

转载 [JSP错误]WARN:org.apache.jasper.compiler.JDTJavaCompiler:Compilation error

同事以前写的项目报错,查找相关资料都是说jdk的版本问题,更换相应的jdk,仍然报错,且由于是仅有该页面报错,让我愈加怀疑并不是由于jdk版本的问题而导致的无法编译,通过一行一行的测试jsp页面,终于让我找到了问题,在此记录一下。完整报错:2020-07-14 13:43:04.651:WARN:org.apache.jasper.compiler.JDTJavaCompiler:Compilation errororg.eclipse.jdt.internal.compiler.classfmt.

2020-07-14 16:57:53 1189

原创 [集合]引用泛型结果集复制

由于现在在做的项目数据量太大,导致查询太慢,所以对查询出来的List<HashMap<String, Object>>类型的结果集进行了ehcache缓存处理,本来这样做是没什么问题的,但是当我们对缓存后的结果集进行相应的处理时,问题就发生了。未加缓存处理前的代码:List<HashMap<String, Object>> newWealths = indexService.newWealth(param); //查询结果集for (HashMap.

2020-07-09 18:16:14 186

原创 [HighCharts]X轴自动倾斜(没有设置倾斜属性)

最近需要使用HighCharts来做图表显示,发现了一个很奇怪的现象,在做静态页面设计的时候,HighCharts坐标轴X轴并未倾斜,但是,在用js方法处理填入真实数据库数据X轴就自动倾斜了。测试时静态页面的data数据:series: [{ name: '总人口', color: 'red', data: [ ['上海', 24.25], ['卡拉奇', 23.50], ['北京', 21.51], ['德里', 16.78], ['拉各斯', 16.06] ],.

2020-07-08 15:02:38 1890

原创 [Spring预加载]InitializingBean接口

很多时候我们程序要查询的数据量太大了,无论怎么进行SQL优化,查询的时间仍可能达到数秒,这个时候对于用户的体验就是非常不好的,这个时候我们就可以采用预加载的方法,在Web容器启动时加载相应的数据查询方法,将得到的数据放入缓存,这样当用户来请求数据的时候,我们就可以将缓存中的数据返回给用户,从而提高用户体验。实现InitializingBean接口是实现Spring预加载的采用手段,实现流程:创建一个bean(注:InitializingBean接口是基于bean实现的),实现Initializi.

2020-06-22 15:00:43 620

原创 [Java基础]时间处理相关类

在程序的执行过程中我们不可避免对时间的获取,转换操作,所以,了解常用的时间类还是很有必要的计算机内的时间:时间在计算机里是一维的,就如同一个直尺一般,而在计算机里,将1970年1月1日定为基准时间,每个度量单位是毫秒,一般用Long类型的变量来计量时间:Long now = System.currentTimeMillis();时间处理核心类Date:创建Date对象:Date d = new Date(); //java.util.Date;Date类的无参构造实际上是调用有参构造Da.

2020-05-24 18:39:14 182

原创 [Java基础]StringBuilder和StringBuffer

StringBuilder和StringBuffer的产生背景:String一经初始化后,就不会改变其内容了。对String字符串的操作实际上是对其副本(原始拷贝)的操作,原来的字符串一点都没有改变。比如:String s = “a”;创建了一个字符串;s = s+“b”;实际上原来的"a"字符串对象已经丢弃了,现在又产生了另一个字符串s+“b”(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的时间和空间性能

2020-05-23 21:51:22 178

原创 [Java基础]Java对象内存分析

Java虚拟机的内存大致分为三个区域:栈stack:栈是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等),每个方法执行的相关调用都在栈里面;栈是线程私有的,不能线程共享;虚拟机会为每个线程创建一个独立的栈;栈的存储特性类似于子弹的弹夹,先进去的后出来,后进去的先出来,如方法一调用方法二,方法二调用方法三,先开辟方法一的栈帧,再开辟方法二的栈帧,最后开辟方法三的栈帧,但是执行的关闭顺序是先关闭方法三的栈帧,再关闭方法二的栈帧,最后关闭方法一的栈帧,而当整个线

2020-05-23 16:53:45 319

原创 异常统一捕获处理

1、异常的类型:首先,我们明白异常分为可预知异常(如空指针)和不可预知异常(如数据库连接异常):其中,可预知异常由我们主动抛出,由SpringMVC统一捕获;而不可预知异常有SpringMVC统一捕获Exception类型的异常;而所谓异常统一捕获处理就是将可预知异常和不可预知异常采用统一的信息格式来表示,并且随请求响应给客户端。这样我们就可以避免大量使用try/catch而导致的代码...

2020-03-28 17:00:53 1077 1

原创 [mongoDB]使用Studio 3T连接MongoDB报错Illegal argument: For input string: “23-28-g865b4f6a96“

使用Studio 3T做MongoDB客户端连接报错,但是使用robo3t正常连接如图,MongoDB正常启动:但Studio 3T连接报错:通过报错我们可以明白,这是由于MongoDB的版本中含有非法字符,导致Studio 3T无法连接,但是MongoDB的版本号不能更改,所以我们要么装一个没有非法字符版本号的MongoDB,要么装一个能够识别该版本号的客户端。所以要解决该问题只...

2020-03-11 17:35:09 819

原创 Windows系统下安装MongoDB后在服务里面找不到MongoDB服务的解决方法

安装这里就不讲了,请自行解决解决方案1、在自己的MongoDB安装目录的bin目录的同级创建一个data文件夹,并在该文件夹下创建一个db文件夹:2、回到bin目录,cmd窗口运行mongod --dbpath C:\Program Files\MongoDB\Server\3.4\data\db;注意,目录为自己的刚刚安装的MongoDB的目录。期间可能发生的错误:excep...

2020-03-07 22:48:12 5976 5

原创 vue中el-date-picker值的获取

el-date-picker中时间的获取是很常见的,但对于我这种不是专业前端的人还是记录一下如果获取el-date-picker选择的两个时间首先,我们明白el-data-picker可以通过v-model绑定值,且绑定的值为数组类型,我们可以根据下标去获取,但是获取出来的格式是这样的:这个时候我们只需要将el-data-picker的属性value-format设置成我们想要的时间格式...

2020-02-23 16:06:09 14604

原创 使用hexo+github搭建个人博客全面教程

使用hexo+github搭建个人博客安装node.js:由于安装太过简单,这里就不再概述,如有疑惑,请查看本博客主的以往博客注册GitHub账号:账号注册的事情也不过多累赘,相信看到该博客的人都是有GitHub账号的人安装Git详细情况请点击该步骤蓝色字体本地使用hexo:随便打开一个目录创建一个新的文件夹,文件夹名自取cmd打开该目录:安装hexo脚手架:n...

2020-02-09 22:08:14 311

原创 springboot Interceptor拦截器excludePathPatterns失效

springboot Interceptor拦截器excludePathPatterns失效使用jwt和HandlerInterceptorAdapter做登录的拦截放行失效拦截器:配置文件:这里将登录路径即/admin/yanxue/user/login在addInterceptors中放行后登录请求却报错用户未登录:第一种情况:参数导致的路径不匹配:比如我们需要传入的参数...

2020-02-07 11:23:05 6575 2

原创 Springboot整合jpa使用实体类生成数据库表报错:At least one JPA metamodel must be present

通过实体类来生成数据库表,从而减少报错和实体类与数据库中字段不符而产生的一系列问题搭好了一切环境后,项目运行:java.lang.IllegalArgumentException: At least one JPA metamodel must be present!报错截图:在网上找了很多方式,大多都是修改启动类,如:@SpringBootApplication@EnableAu...

2019-12-30 16:36:12 955 1

原创 Redirecting to /bin/systemctl start mysqld.service Failed to start mysqld.service: Unit not found.

为了在本地服务器下搭建svn,在CentOS中安装mysql,使用yum install mysql-server mysql mysql-devel安装mysql却无法启动mysql服务使用service mysqld start在CentOS7中启动mysql报错:在提及该错误前,我们先提到一个mysql发展及当期背景:MySQL是一种开放源代码的关系型数据库管理系统(RDBMS.........

2019-12-26 14:14:53 45536 23

原创 NUXT引入element-ui后使用scroll(瀑布流)报错Failed to execute 'observe' on 'MutationObserver': parameter 1 is no

完整报错:Failed to execute ‘observe’ on ‘MutationObserver’: parameter 1 is not of type ':浏览器控制台报错:解决方案一(不推荐):因为不是专业前端,对于css样式进行调节还是不推荐给使用v-infinite-scroll的标签设置高度和页面溢出:max-height: 100vh;//与屏幕一样高度...

2019-12-26 12:11:28 1662 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除