- 博客(248)
- 收藏
- 关注
原创 JVM基础知识汇总
1.jvm是什么 2.jvm能做什么 3.jvm分类 4.jvm优缺点 5.jvm内存管理分配 6.jvm垃圾回收 7.jvm可视化 8.jvm调优
2018-04-16 22:03:27 8047
原创 mysql 使用id in(‘1,2‘) 的时候,只能查到id=1的数据的解决方法
mysql使用idin(‘1,2’)的时候,只能查到id=1的数据的解决方法。
2022-07-29 11:23:49 1965 1
原创 若依前后分离项目,发布在阿里云效中
配置代码源配置构建信息mvn -B clean package -pl ruoyi-admin -am -Dmaven.test.skip=true -Dautoconfig.skip项目名称和pom文件中保持一致,都叫ruoyi-adminpom中的这个,也保持一致指定target下的jar包位置指定deploy.sh的位置将deploy.sh的APP_HOME中的XXX替换成项目目录!/bin/bashPROG_NAME=$0ACTION=$1ENV=$2# 修改
2022-01-24 14:47:24 2369 3
原创 java file.renameTo返回false的原因记录
需要对文件夹下的文件重命名,发现返回false了,先用main方法测试,发现没问题,如下 public static void main(String[] args) throws IOException { File file1 = new File("D:\\aabb.xml"); File file2 = new File("D:\\ccdd.xml"); boolean b = file1.renameTo(file2); Syste
2020-12-19 15:48:37 7743 2
原创 分布式基础
四大基础理论拜占庭将军问题CAP 理论ACID 理论BASE 理论八大分布式协议和算法Paxos 算法Raft 算法一致性 Hash 算法Gossip 协议算法Quorum NWR 算法FBFT 算法POW 算法ZAB 协议
2020-12-14 10:25:45 5516
转载 互联网技术部门该如何管理
互联网技术部门该如何管理一、敏捷开发1.快速开发、快速迭代。2.组件式开发,避免重复造轮子。3.制定代码标准。4.并行开发,高效配合。5.单元测试必须覆盖所有核心业务。二、DevOps流程建立起来1.建立三套环境:测试、SandBox、正式。2.建立自动化流程:CI/CD。3.开发人员需全程参与到开发、测试、运维整个流程。4.建立监控报警、日志收集工具集。5.快速响应,所有项目成员都参与。三、代码版本控制及Code Review1.开发的组件或改动过的第三方SDK都需要加入代码仓
2020-12-05 18:32:24 6050
原创 java 调用groovy脚本,实现多个sql按指定逻辑运行,可做报表预聚合
java 调用groovy脚本,实现多个sql按指定逻辑运行,可做报表预聚合1、引入pom <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>2.1.6</version> </depende
2020-12-01 14:49:02 6513
原创 报表设计调研分享
公司结算系统要做一个内部报表,想自己开发,调研了市面上一圈报表,快把github翻烂了,也没找到一个合适的。之前给做过一个自定义sql查询的,但最终是因为系统太过复杂,导致最终sql复杂到没法写了,而且超级大的sql,特别不好维护。现在把之前的调研结果分享出来,希望后人少走弯路。收费的:帆软报表目前市场占有率好像最高,功能较为齐全,适应大多数行业的功能,价格较贵,基础版价格:80000元/服务器,高级版价格:500000/服务器软件下载地址:http://www.finereport.com/
2020-11-26 10:42:20 6740
原创 mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mysql报错:[Err] 1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘库名.表名.字段’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by分析发生这个错误,一般是
2020-11-24 20:21:27 14180 3
原创 微信小程序支付流程(新手教程)
微信小程序支付流程:一、前期申请准备工作1、小程序注册,要以公司的以身份去注册一个小程序,才能开通微信支付权限;个人申请的小程序是不具备“微信支付”功能的!但个人小程序可以生成微信支付的那个收款二维码,勉强可以代替下。公司需要开头对公账户,申请小程序的时候要通过小额打款来验证公司和对公账户。2、绑定商户号。小程序注册流程:https://kf.qq.com/faq/170109iQBJ3Q170109JbQfiu.html小程序注册入口:https://mp.weixin.qq.com/cg
2020-11-07 18:47:36 15882 1
原创 vue 每次弹框都初始化
之前弹框都是下图这种:通过detailOpen变量控制是否显示弹框但这种最近在整合tinymce富文本编辑器的时候,发现第二次弹框数据没有回填原因是因为第一次弹框关闭后,没有初始化,从而影响了后面的弹框功能。修改成下图就好了:...
2020-11-03 16:49:03 9068
原创 mysql8.0 线上线下数据库版本不一致导致的问题
问题:线上注册失败,线下测试环境没问题update t_authentication_code set invalid = 0,update_time = sysdate() where email = ‘XXX’ and code = ‘XXX’ and invalid = 1;同样的sql,线下执行成功,线上却一直没有修改成功分析:排除其他原因后,最后发现线上mysql的版本是mysql8,而线下测试数据库是mysql5。再看建表语句,果然也不一样,尤其是排序规则线上:CREATE TA
2020-10-31 11:49:05 7597
原创 mysql 报错 Specified key was too long; max key length is 767 bytes,开启系统变量:innodb_large_prefix
mysql 报错 Specified key was too long; max key length is 767 bytes当mysql数据库的字符集使用了utf8mb4,就很容易在执行建表sql的时候报这个错误。原因:mysql有个系统变量innodb_large_prefix,如果开启了,索引键前缀限制为3072字节;如果禁用了,索引键前缀限制为767字节。当mysql数据库的字符集使用了utf8mb4,每个字符最大的字节数为4,如果建表语句中,有类似varchar(255)的字段,4*
2020-10-19 17:53:04 8595
原创 关于SimpleDateFormat线程不安全的源码分析
SimpleDateFormat,线程不安全,源码分析1、先看SimpleDateFormat类图SimpleDateFormat继承了DateFormatDateFormat中有个成员变量是Calendar,这个先记住,线程不安全主要就是因为这个成员变量2、看下图SimpleDateFormat的parse方法这个方法,主要就两步,第一步是针对入参text做了一系列操作,这里可以省略不看第二步就是下图代码中的红框部分:calb.establish(calendar),这个入参就是上面说的
2020-10-12 17:55:52 7721 1
原创 quartz 本地有效,线上失效的问题
问题:最近开了一个新项目,spring boot 整合了quartz,出现了一个问题,就是当项目连接到本地电脑的数据库时,一切正常。但是当项目连接远程linux上的数据库的时候,发现定时任务不灵了,也不是不执行,比如手动执行一次这个操作,点一下没反应,再点一下,却执行两次。调试:看了下源码,整个手动执行一次的逻辑是这样的:1、当页面点执行一次,后台qrtz_triggers表会插入一条新记录,代表马上要执行了2、在org.quartz.core.QuartzSchedulerThread#run方
2020-09-28 20:54:16 8614
原创 quartz 报错:Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS‘ doesn‘t exist
问题:spring-boot 整合quartz的时候,连接windows的mysql的时候好好的,然而用linux上的mysql的时候,启动就报了这个错:Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS’ doesn’t exist分析:首先用windows的mysql是没问题的。其实linux的mysql也是有这个表的,但由于是从windows复制过去的,所以表名都是小写的,而quartz启动的时候找的是大写,所以认为test.QRTZ
2020-09-25 21:31:39 18367 6
原创 【读书笔记】--- 《码出高效:java开发手册》
这几天读了几本书,突然觉得可以写点什么,因为我也看了不少书了,于是就有了个想法,我可以在我看过的每本书后,把我的一些想法记录下来,一方面可以供以后回忆,一方面可以让读者看到后,对这本书有一些更详细的了解,然后再确定要不要买。正文:这本书涉及到的知识点比较多,大多数都比较浅一点,整体上适合初入职场1年以上的同学,,但不是很适合新手入门。虽然这样,但本书也有很多地方写的也挺细的,比如讲https的那块,是我看到过的所有相关文章中比较详细且易懂的。但我还是觉得值得一买,因为当你仔细阅读这本书,你会发现这本
2020-09-23 23:08:43 7615 1
转载 【转载】广告系统架构解密
广告、增值服务、佣金,是互联网企业最常见的三种盈利手段。在这3大经典中,又以广告所占的市场份额最大,几乎是绝大部分互联网平台最主要的营收途径,业务的重要性不言而喻。从技术角度来说,广告业务涉及到 AI算法、大数据处理、检索引擎、高性能和高可用的工程架构 等多个方向,同样有着不错的技术吸引力。我从去年开始接触广告业务,到现在差不多一年时间了。这篇文章将结合我的个人经验,同时参考业界的优秀案例,阐述下广告系统的架构实践方案,希望让大家有所收获。内容包括以下3部分:广告业务简介面临的技术挑战广告系统架
2020-09-22 21:50:04 7734
原创 api接口设计
api接口设计健壮性对外提供的接口,最好支持幂等性,即相同的请求重复调用,服务端的操作应该只有一次,并且每次返回的结果应该是一样的。一般的做法是要求客户端在每次调用的时候带上唯一键,服务端第一次正常处理,并缓存唯一键和结果,后面再有重复调用,即可直接获取缓存结果返回。如果客户端没有唯一键的条件,也可以要求传时间戳,用时间戳作为唯一键。对外的接口,粒度能细就细,最好不要是那种入参是type,然后服务端根据type类型返回不同的数据,这样容易被调用方猜到一些服务端不想暴漏的内容。举个例子,比如你要
2020-09-09 16:51:10 7686 1
转载 redis 常见基础面试题
1、在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?面试官心理分析这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬。只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少,就知道干活儿。面试题剖析项目中缓存是如何使用的?这个,需要结合自己项目的业务来
2020-08-15 11:51:17 8651
原创 【错误记录】Invalid character found in method name. HTTP method names must be tokens
错误日志[2020-08-14 10:47:11.262] [http-nio-8093-exec-7] [INFO] [o.a.c.h.Http11Processor] [Error parsing HTTP request headerNote: further occurrences of HTTP header parsing errors will be logged at DEBUG level.]java.lang.IllegalArgumentException: Invalid ch
2020-08-14 10:55:44 7822
原创 云服务和serverless
云服务中的一些基础概念IaaS(Infrastructure as a server)基础设施即服务基础设施就是物理服务器云服务厂商把物理服务器搭好,直接卖云端服务器或者虚拟机用户可以自己装系统,然后装软件等等PaaS(Platform as a Server)平台即服务平台就是操作系统云服务厂商把操作系统安装好了,剩下的用户自己装SaaS(Software as a Server)软件即服务云服务厂商把软件都装好了,用户直接用,最多只需要维护产生的数据即可DaaS(Date as a
2020-08-13 19:46:36 8096 1
原创 spring boot maven项目返回值乱码的解决方法
云服务的基础概念IaaS(Infrastructure as a server)基础设施即服务云服务厂商把物理服务器搭好,直接卖云端服务器或者虚拟机用户可以自己装系统,然后装软件等等PaaS(Platform as a Server)平台即服务云服务厂商把操作系统安装好了,剩下的用户自己装SaaS(Software as a Server)...
2020-08-13 10:23:18 7858
原创 java 使用gzip压缩和解压 传输文件必备
java gzip 压缩解压工具类,开箱即用package com.yeahmobi.datacheck.util;import java.io.*;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;public class CompressUtil { public static void main(String[] args) throws IOException { //
2020-08-07 10:27:37 8132
原创 错误记录:Current request is not a multipart request
springboot 报错:Current request is not a multipart request这个一般是controller是带有上传文件的服务,类似@RequestParam MultipartFile[] file解决:首先检查请求头中的Content-Type是否设置对,如果把Content-Type设置成application/json是不行的需要把Content-Type设置成multipart/form-data或着去掉Content-Type。还有一种可能就是你的请
2020-08-04 14:21:25 238723 6
原创 spring boot controller 增加指定前缀的两种方法
1、增加配置server.servlet.context-path: /api这种是最常见的,加上这个配置后,所有的url,必须带上/api的前缀,才能访问到改url2、过滤拦截这种是加上/api也可以访问,不加/api也可以访问,适合项目重构修改的适合用import org.apache.commons.lang.StringUtils;import org.springframework.context.annotation.Configuration;import org.spring
2020-07-25 16:33:19 10573 1
原创 RabbitMQ和Kafka选型用哪个
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说
2020-07-18 15:15:14 7881
原创 LeetCode删除排序数组中的重复项(Java实现)
原题:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组
2020-07-04 17:14:40 7796
原创 [记录] --- safari浏览器对于yyyy-MM的坑
问题后端给前端返回的带格式的日期类型时,很多时候都是yyyy-MM-dd格式的,在一般浏览器中都没问题,但safari浏览器就会出问题。解决:换成yyyy/MM/dd格式
2020-06-29 19:52:20 7566
转载 [转载] --- Fastjson1.2.68版及以下全版本远程代码执行漏洞通告
【安全通告】Fastjson <=1.2.68全版本远程代码执行漏洞通告 尊敬的腾讯云用户,您好!近日,腾讯云安全运营中心监测到,Fastjson <=1.2.68版本存在远程代码执行漏洞,漏洞被利用可直接获取服务器权限。为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,...
2020-06-29 19:07:37 8756
原创 如何在摆摊经济中脱颖而出
最近,摆摊经济开始火了起来,于是各路诸侯纷纷举起大旗开始摆摊。我周围也不乏有亲朋好友蠢蠢欲动,有的甚至已经初有规模。但这波摆摊风是否真的可行,对谁可行,有哪些风口,有哪些坑,我们慢慢分析下。
2020-06-09 19:38:09 7563
原创 @JsonFormat失效解决
先说结论@JsonFormat失效,换成@JSONField就好了问题经过和原理@JsonFormat作为Date类型的属性值,返回前端格式化处理,很方便。比如: @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss") private Date updateTime;返回给前端是这样:但在我加了ResponseBodyAdvice之后就失效了。ResponseBodyAdvice是一个接口,自定义一个类,实现这个接口后,就可以对controlle
2020-05-22 22:59:03 36299 12
原创 非对称加密算法 --- RSA签名算法
RSA原理通过一定的规则,生成公钥和私钥,公钥和私钥总是成对出现。公钥可以公开出去,任何人都可以知道。私钥只有自己知道。RSA算法能保证,公钥加密后的密文,只有对应的私钥才能解密。或者,私钥加密后的密文,只有对应的公钥才能解密。而且不能通过公钥得到私钥,也不能通过私钥算出公钥。关于为什么公私钥直接不能互相转换,请看我之前的一篇文章:非对称加密算法之RSA算法实现RSA应用场景RSA加密场景A给B传一条消息,要保证哪怕消息被截取了,也不能让别人知道消息的真正含义。1、B生成公钥和私钥,私
2020-05-13 00:07:23 7988
转载 面试 HTTP ,99% 的面试官都爱问这些问题
HTTP 和 HTTPS 的区别HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 主要内容分为三部分,超文本(Hypertext)、传输(Transfer)、协议(Protocol)。超文本就是不单单只是本文,它还可以传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转。上面这些概念可以统称为数据,传输就是数据需要经过一系列的物理介质从一个端系.
2020-05-11 19:41:28 7582
原创 对称加密算法原理与常用实现
定义原文通过加密秘钥生成密文,密文通过解密秘钥得到原文。对于加密秘钥和解密秘钥是相同的算法,就叫对称加密算法。常用的对称加密算法DESData Encryption Standard初代对称加密算法从98年开始不断被破解,到现在已经完全不具备安全性了。现在基本没人用了,但很值得学习。秘钥长度56位3DES由于DES算法长度不够,衍生出3重DES算法。AESPEBIDEA...
2020-05-03 18:05:06 10007
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人