自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

万米高空的博客

见证自己的成长历程,记录常用技术点,注重学习和共享

  • 博客(183)
  • 收藏
  • 关注

原创 个人学习笔记-13

– 分析命令ulimit -a 【可以查看当前系统设置的最大句柄数是多少,其中的open files那行就是代表系统目前允许单个进程打开的最大句柄数,一般没有设置默认为1024.】ps -ef | grep java 【可以查看当前java应用程序进程对应的进程id.】lsof -p 进程id 【查看单个进程打开的的文件详情】lsof -p 进程id | wc -l 【统计进程打开了多少个文件,如果文件数过多,无法完全查看,则可以使用命令 lsof -p 进程id -> ope

2021-04-21 16:30:57 802 1

原创 Cannot add or update a child row: a foreign key constraint fails

产生的业务场景是这样的:教研的同学配置试卷时,对一道大题下的小题同时进行了删除和新增操作,结果删除操作执行后,发现大题下没有小题,大题这个节点也就删除了,后续执行新增小题时,发现大题已经不存在,就会报错了。数据库说明:存在上述报错是由于表结构设计的有主外键关系,然后小题依赖(父节点)大题的数据,表设计上小题的表的外键为大题的主键id。当大题的主键删除后,新增小题就会报:a foreign key constraint fails总结:实现流程或者页面设计可以优化。当小题都删除时对应答题就不再显示,这

2021-03-13 14:51:56 3000

原创 springboot MongoTemplate 之Aggregation 实现常见操作

很多复杂的查询都是从简单的部分组合的实现,续接昨天的通过Query查询后,今天接着补充聚合管道-Aggregation进行数据查询,处理。相比较Query查询,Aggregation再处理数据时会方便很多,也便于优化查询语句。首先springboot引入mongodb的配置也是从引入pom依赖->配置文件中mongodb的连接信息配置->在具体service中注入MongoTemplate 。这些上一篇文章都已经有写,不在重复。需要注意导包是这些:org.springframewor..

2021-02-25 19:03:23 10019 2

原创 springboot MongoTemplate 之Criteria+Query实现常见操作

时隔俩月再次前来更新,太忙了。这次把从年前持续到现在的一个项目用到的mongodb技术总结一下。陆陆续续遇到的坑和经验也放进来。首先是技术选型上,我为啥选择使用mongodb,而不是mysql?这个完全是看业务场景,业务场景会导致数据的特殊性。我负责的内容管理部分。主要是存储用户和内容的交互数据。数据量比较大,而且都是新增动作,没有修改。且每条数据的字段如果是mysql,会存在很多varchar长度超过200,text的字段。所以选择使用mongodb.1.首先项目引入依赖 .

2021-02-24 18:37:26 3280

原创 带有入参的连接生成二维码入参丢失

问题是这样我们要搞一个活动,可以让用户分享二维码海报,进行推荐分享别人。但是我们要记录分享者信息和扫描者的关系,所以生成的二维码连接中需要带有分享者信息。需要后端同学来根据这个url来生成海报。我们的解决方案:根据前端的Url,依赖三方 com.google.zxing.*包生成合成对应的海报二维码,上传到云存储,再把资源链接返给前端。是线上发现问题是如果url是这样的:https://test232-student.lingo.com?referrerId=6450728368696056。生

2020-12-17 16:52:14 929 1

原创 expect RPAREN, actual LPAREN pos 31, line 1, column 14, token LPAREN

对于复杂sql执行时报错信息:com.alibaba.druid.sql.parser.ParserException: syntax error, error in :' tmp as ((', expect RPAREN, actual LPAREN pos 31, line 1, column 14, token LPAREN首先报错sql放到mysql8.0执行是ok的。但是在程序里报错。说明是解析sql时有问题导致生成的sql执行出现问题。问题就出现druid数据库连接池过滤器发现一些关键

2020-11-27 17:07:27 20653

原创 invalid bound statement (not found)当你绝望时,所有方法都试过还不行,请看这里

搞了两个小时,被idea坑过最惨的一次。啥都没问题,但是手写的mapper死活运行死活报错:invalid bound statement (not found)。先看结构:mapper.xml文件目录,在建的时候一定不要一次建成,而是要逐级建dirct。比如:com.zhanglf.edu.mapper这个xml目录,需要先建立com目录,再次建立zhanglf目录,其次edu,最后mapper目录。如果你一次build目录为com.zhanglf.edu.mapper,就会被idea坑!

2020-09-30 18:05:04 258

原创 springboot对接三个公众号实现三个公众号配置切换,实现用户信息回传微信,以供微信提供更精确用户群体,实现投放广告转换率更高。

业务背景是公司的运营在几个公司的公众号上投放了广告,当用户点击广告,会发送给用户用于注册的落地页连接。用户注册后会有销售或者客服来联系进一步的转换动作。但是要实现用户信息回传微信,用来让微信分析用户群体,知道啥样的群体转换率更高。三个公众号用户信息获取wxopenId的难点在于获取信息需要用对应公众号的一套公众号配置。如何在springboot中实现三套配置都注入成功,而且来回切换?设计上,我让前端给我在注册的落地页里加上channel字段,不同的channel投放不同的公众号,通过channel来区分是

2020-09-24 14:42:36 1017

原创 springboot项目对接微信公众号需要知道的几个事情,非常重要。

1.如果要对接微信的公众号,首先就是要在开发者配置中开启服务端配置才行。但是一旦开启服务配置,你在微信公众号平台配置的自动回复消息,自定义菜单就全部失效。即使你开启后关闭,也需要重新配置才行,不然就是失效不能用的状态。你在开启配置时,会有弹窗提醒。如下,而且你一旦关闭这个配置,对接到自己服务器就失效。即平台和后台二选一。2.如果第一步你已经完成开启服务器配置。那就几个具体的实现场景说明是否可行2.1 能否生成一个带有参数的二维码,用户扫描二维码进行关注,关注后能收到二维码中的参数?答案是:可

2020-08-03 10:03:38 1480

原创 服务器启动springboot的jar包脚本

上面是放到服务后的项目文件夹下的结构。包含一个springboot的项目jar包。和三个脚本,分别为重启,启动,停止脚本。start.sh脚本主要是java -jar命令 ,加上给项目分配内存数据等。public static Toolkit getDefaultToolkit()获取默认工具包。如果名为 “java.awt.headless” 的系统属性被设置为 true,则使用 Toolkit 的 headless 实现。如果不存在 “java.awt.headless” 或 “java..

2020-07-31 17:17:30 775

原创 amazonS3文件操作知识点汇总

1.文件上传时,对于不存在路径会是啥结果?如果上传的存储桶不存在,会报错。如果是存储桶下面的文件夹不存在,则会创建一个并保存进去你上传的文件。第二次上传同样的路径,应为已经存在,则直接保存。如果上传的路径的 一级目录 前面多了斜杠“/”,也会报错。举个例子:指定的文件上传的key为:/temp/20200723/小小的船-2129566950.pptx,则就会报错。The specified key does not exist. (Service: Amazon S3; Status Code: 4

2020-07-24 14:18:04 3699

原创 springboot的jwt实现登录态相关工具,流程汇总

1.首先是jwt的相关maven依赖 <!--JWT(Json Web Token)登录支持--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version>

2020-07-22 17:47:45 478

原创 win10安装mysql 8.0遇到的问题总结

今天新换了个电脑,环境需要重新装。走到mysql的安装发现遇到不少问题,从安装到修改密码,甚至最后修改密码后navicate连接都报错,下面就遇到的问题一个个的梳理解决的过程。写在前面:具体的安装流程从下载包开始可以参考菜鸟教程:https://www.runoob.com/mysql/mysql-install.html,我这是windows10,所以直接跳到windows部分进行操作。首先是本机安装mysql,我这里用的是压缩包,解压后的免安装的,所以需要自己来配置安装。1.安装mysql.

2020-07-05 20:25:46 959 1

原创 给pdf加水印的方法

1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>2.水印图片在项目中的位置3.代码实现..

2020-06-19 16:58:10 1301

原创 java实现ppt/pptx转图片,转pdf的两种方式之二 aspose方式的准备工作

aspose我这里有两种实现方式,一种和poi类似,及通过png图片合成pdf.还有一种是直接生成pdf.这两种我感觉第一种更灵活,因为专程图片后可以对图片处理,比如截图,压缩图片,设置透明度,缩放等等。并且这种处理方式要比直接生成pdf的好像是快点。但是这种快也不是差别很大。好了,下面是先准备工作,因为这个aspose需要依赖jar包。aspose.slides-15.9.0.jar,而如果没有word转pdf的可以不用引入第二个 aspose-words-15.8.0-jdk16.jar, 并且这个

2020-06-19 13:10:57 1800 1

原创 java实现ppt/pptx转图片,转pdf的两种方式之一 poi

poi的实现方式是分步实现的,并不能直接将ppt,pptx转为pdf.首先是maven依赖1.pom.xm需要引入的依赖 <!--poi依赖--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.

2020-06-19 12:17:26 4966 14

原创 java实现ppt/pptx转图片,转pdf的两种方式poi与aspose比较以及后续的各自实现

poi与aspose的比较1.常见的ppt转pdf的方案有两种:a.一种是ppt先转换为png等图片格式的图片,然后在合成图片生成pdf。b.直接将ppt转为pdf以上两种方式中:方式a可以通过poi相关全程实现,也可以使用aspose+poi的方式实现。两种实现方式分别为ppt/pptx转png图片阶段:poi或者aspose,其中poi在这个阶段的速度比aspose快很多,但是有一点,就是偶尔会底层报错,但是aspose出错的可能性极低。具体怎末选,看你是看重速度还是上传的成功率

2020-06-19 11:50:35 2539 1

原创 springboot+mybatis 利用PageHelper插件分页,结果第二页的返回分页信息还是和第一页一样。

正常使用PageHelper来分页时可以的,但是如果在查询list后做了非常多的处理,即解包在装包操作。可能最后返回时分页的数据查询的对,但是分页信息就有问题了。有的甚至分页功能都不行。这里为避免几个坑,有些规则遵守还是有必要的。1.首先将下面这句代码放在第一行。PageHelper.startPage(pageNum, pageSize);2.查询出list后,通过下面语句获取总条数。这个不是这一页的总条数,而是不分页情况下查询的总条数。PageInfo<实体类> page

2020-05-29 17:33:10 3267

原创 使用ExecutorService高并发处理任务

使用线程池的场景一般是资源在某个方法的执行或者某段代码的执行不分先后,互不影响时使用。比如某个方法在某段时间会出现高并发的场景,这个方法里有需要加锁进行串行处理的时候,有些地方可以并发执行的。这些就都可以在方法里专门封装方法体。加锁的执行可能比较快,而下面的一段处理逻辑是比较复杂,操作比较多的写表操作。但是谁先执行无所谓。但是又要防止请求过多,挤爆服务器,就需要线程池来做有限制线程数的高并发了。首先是获取线程池,这里面的数据要根据自己服务器的参数调整,调优。import java.util.c

2020-05-27 18:43:39 1128

原创 后台接口的入参传递方式设定的几种区别对别

接口的入参根据后端的定义可以分为三种:1.入参放在路径上,接口封装像下面这个: @RequestMapping(value = "/change/parentInfo/{userStudentId}/{operatorId}", method = RequestMethod.PUT) @ResponseBody public CommonResult changeParentAdviserInfo(@PathVariable(value = "userStudentId")

2020-05-27 18:19:54 4812

原创 个人笔记12

表数据如上。现在要求查询的列表为按outline_group_id分组,分组后组内按照sort_no排序错误的做法:这样只能得到分组的第一条记录 <select id="selectByOutlineGroupIdsAndStudentId" resultMap="ResultMapWithBLOBs"> select <include refid="Base_Column_List" /> , <include refid="Blo.

2020-05-13 14:22:07 195

原创 内存分析,线程分析的方法

本文转发来自博主figo_2009的博客,这里有地址可以链接过去:https://blog.csdn.net/figo_2009/article/details/84395703。内容一样。我拿过来的目的是在从写一遍加深记忆,也可以做个保留,为以后解决,分析内存,线程问题做一些技术储备。-------------------------------------------------------...

2020-03-21 21:12:28 244

原创 《深入理解java虚拟机》的内存模型个人理解

如图所示。内容看图实际上都说完了。图画的比较丑,但是意思都说明白了。。。服务器的内存分配如果从JVM方向划分的话,大致分为三块:1.JVM内存区2.NIO内存区3.剩余其他内存区其中针对JVM内存区粗略分为三部分。分别是占用内存比较少的程序计数器,栈(stack)和占用JVM内存最多的堆(Heap)。估计该有人疑问说我分错了。本地方法栈和方法区为啥划分到大堆和大栈里?其实按照功能划分这...

2020-01-15 11:50:06 269

原创 springboot中使用异步的常用两种方式及其比较

一般对于业务复杂的流程,会有一些处理逻辑不需要及时返回,甚至不需要返回值,但是如果充斥在主流程中,占用大量时间来处理,就可以通过异步的方式来优化。实现异步的常用方法远不止两种,但是个人经验常用的,好用的,这里我就说两种,最好用的是第二种。spring的注解方式@Async org.springframework.scheduling.annotation.Asyncjdk1...

2020-01-07 17:45:05 2387

原创 springcloud实现分布式锁案例

项目采用集群部署。一个项目部署后会有多个服务节点。这样前端app的多个请求会会通过负载均衡算法落到多个后端服务节点上。如果用户的提现操作过于频繁,可能会导致两个请求不分先后,分别落在两个服务节点上。这样会导致用户提取1块钱的前后两次操作,而数据确只减少1块钱的问题。所以要将分流到不同服务器的同一个用户的体现请求线程,进行加锁,同一时间只能处理一个用户的一次请求。...

2019-12-31 17:51:13 1483 1

原创 springcloud实现各个模块的统一登陆逻辑和关键代码

1.首先要理解何为统一登陆?统一登陆可以通过一个具体的app来实现。下面是一张美团app的首页截图。首页上面的美食,电影演出,酒店住宿,休闲娱乐,外卖五大模块都整合到这个app里。但是要知道美团之前就是美团外卖,后来的这些功能都是整合进来的。分属于不同的独立引用或者app中,肯定有自己独立的登陆。这些应用的不在一个模块甚至项目中。但是整合到美团app后,只要在app这层登陆后,这五大模块的登陆...

2019-12-18 12:45:46 2403

原创 springboot项目登录图像验证码实现

图像校验如上图。是在用户登录时,增加一步图像校验,防止登录接口被疯狂调用导致登录接口瘫痪。增加在登录注册接口前置这么一个几乎不需要消耗服务器资源的验证页。下面是具体实现。1.图形验证码工具类。这个依赖于jdk.不需要外来的依赖package com.home.base.util;import javax.imageio.ImageIO;import java.awt.*;import...

2019-12-09 17:45:27 833 1

原创 微信支付几种方式的规律和关系整理

微信支付分为四种,分别为微信外浏览器(h5)支付,微信内浏览器(jsapi)支付,微信小程序支付,APP支付。完成不同方式支付步骤不一。H5(一步):统一下单apijsapi(两步):统一下单api,再次签名微信小程序(三步):授权登陆是前提条件,因为这样才能获取到小程序支付必要的入参-openid。统一下单api,再次签名app(两步):统一下单api,再次签名商户号:指的是微信支...

2019-12-02 18:24:03 2780

原创 springboot+mongodb实现对指定经纬度,半径范围内的数据进行搜索

目前公司开的线下店铺有这麽一个要求:需要知道店铺附近1000米内是否存在中小学,以供后续的业务逻辑操作。数据前提:大数据的同学已经把公司将要入驻和已经入住的城市的中小学数据通过爬虫将数据存放到mongodb中。所以需要在mongodb中查询指定店铺所在经纬度的一公里范围内的学校信息。而mongodb正好提供了这种地理经纬度搜索的能力,只要数据符合指定的结构,给要搜索的字段加上特定的索引,即可...

2019-11-22 19:10:09 6988 14

原创 持久化quartz解决分布式定时任务的单线程启动,持久化定时任务

通过持久化quartz来实现多节点的单启动,持久化定时启动记录问题

2019-11-13 21:23:46 786

原创 springboot页面上传图片过大的后台解决办法-------------通过Thumbnails做图片压缩,图片格式转换------这一篇就够!

最近的未成年人保护在互联网也是一浪高过一浪,为了支持政府的政策,对未成年人保护。我们的商城也做了个实名认证的功能。这个功能能够根据用户上传的身份证信息自动判定是否为未成年,进而做出相应的业务处理。问题点1:在于我们使用的三方服务ocr接口限制文件传输为1M,也就是说你的图片过大,就会出现识别报错的问题。而现在的高像素手机,随便一拍就是几兆,必然要做图片压缩的处理。问题点2:用户用的不同的手...

2019-11-09 13:31:51 1872

原创 个人收藏学习资源连接

《后端架构师技术图谱》

2019-10-29 09:38:38 155

原创 为什么zuul网关的注册中心配置无法提取到配置中心?不然会报错

最近在整springcloud的搭建。在搭建过程中发现一个问题。如果将zuul有关注册eureka的配置提取到配置中心,启动zuul就会报错,提示如下无法注册到注册中心:[2019-10-18 11:24:42.016] ERROR [main] RedirectingEurekaHttpClient.java:83 - Request execution error. endpoint=Def...

2019-10-18 12:04:28 1706

原创 javax.crypto.BadPaddingException: pad block corrupted

最近做微信小程序获取用户绑定的手机号信息解密,试了很多方法。最终虽然没有完全解决,但是也达到我的极限了。有时会报错:javax.crypto.BadPaddingException: pad block corrupted。首先说一下解密的流程:微信为了安全,把解密的key,和加密的用户数据分成了两步,分别给了前台,后台。这样,如果不监听到两次请求,是无法解密的。具体步骤:1: 前端调取微...

2019-08-28 18:16:08 85074 29

原创 个人笔记11

1.微信几种支付比较入参比较:主要区别在appId,app支付和小程序支付的appId都是单独的。h5和微信内支付是一样的。

2019-08-27 16:08:33 176

原创 git合并远程指定分支代码到另一指定分子代码的操作步骤

git合并主要注意点是 :解决冲突代码 ,提交本地差异化代码。主要合并的操作为:1.拉取远程分支A的代码到本地2.解决冲突,提交本地代码到分支A上。3.合并远程B分支代码到本地A分支代码上。4.解决冲突。提交到A分支上。以上完成远程B分支到A分支的全部步骤。我们这里假设有两个分支:A分支和B分支,现在在A分支上开发,最后需要将A分支的代码完成开发后合并到B分支上。1.首先是我们把...

2019-08-22 10:40:20 6527

原创 微信,支付宝支付回调的入参处理方法

微信的支付回调为xml格式。支付宝回调为json格式。返回的格式如何处理首先看下回调的入参经过处理后长啥样。微信的支付回调:支付宝的支付回调:微信的支付回调处理: StringBuilder sb = new StringBuilder(); String inputLine; while ((inputLine ...

2019-08-13 11:16:17 2379 3

原创 对接蜂鸟系统推单遇到开发,流程的问题总结

暂留

2019-08-08 11:54:42 2227 1

原创 spring服务间HTTP调用工具封装 RestTempalate

服务间的Http请求,可以用apache的HttpClient,OkHttp,这些都是需要我们手动回收资源,使用起来如果实在spring框架中,则有更优的选择,即:RestTemplate来实现服务间的通讯调用。RestTemplate提供了常见的post,get等请求。下面是利用RestTemplate来封装Http请求工具类。代码部分:import org.slf4j.Logger;i...

2019-08-08 11:28:16 1233

原创 微信支付的流程整理和工具类记录之三《微信小程序支付》

这里我的吐槽一下微信支付的文档。微信小程序的说明文档是三个里面讲的最明白的。一看便懂。或许在你做过微信内浏览器支付后在做这个,流程上大差不差。所以看起来起来也容易。还是先上流程图。看官网的移步这里:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=31.生成订单。2.调用同意下单支付接口...

2019-08-07 11:28:12 302

空空如也

空空如也

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

TA关注的人

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