万米高空的博客

见证自己的成长历程,记录常用技术点,注重学习和共享
私信 关注
万米高空
码龄4年

生活要充满激情!

  • 960,963
    被访问量
  • 169
    原创文章
  • 7,449
    作者排名
  • 210
    粉丝数量
  • 于 2017-04-21 加入CSDN
获得成就
  • 获得206次点赞
  • 内容获得163次评论
  • 获得602次收藏
荣誉勋章
兴趣领域
  • #后端
    #分布式#Spring#架构#Redis#Linux#Java#MySQL#Spring Boot
TA的专栏
  • amazonS3
    1篇
  • PageHelper分页
    2篇
  • jvm
    3篇
  • spring
    4篇
  • 定时任务quartz/schedule
    1篇
  • log4j/logback日志
    3篇
  • 文本元素解析
    2篇
  • 前端知识汇总
    7篇
  • 客户端服务端通信实现方式
    8篇
  • 个人非技术分享
    9篇
  • HTTP请求/COOKIES
    7篇
  • 项目版本管理工具
    3篇
  • 线程和分布式锁
    6篇
  • linux命令
    4篇
  • 文件操作
    23篇
  • 登陆
    6篇
  • 定时任务quartz和Scheduled
    3篇
  • rabbitMq专栏
    5篇
  • 三方系统对接
    7篇
  • 个人笔记
    11篇
  • 数据源jndi
    2篇
  • redis缓存相关
    9篇
  • mongodb
    4篇
  • 接口设计与安全
    9篇
  • 问题点汇总
    20篇
  • maven
    2篇
  • FTP
    2篇
  • mybatis/mysql
    10篇
  • 容器
    3篇
  • java
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

springboot MongoTemplate 之Aggregation 实现常见操作

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

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

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

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

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

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数据库连接池过滤器发现一些关键
原创
1272阅读
0评论
0点赞
发布博客于 3 月前

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坑!
原创
69阅读
0评论
0点赞
发布博客于 5 月前

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

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

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

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

服务器启动springboot的jar包脚本

上面是放到服务后的项目文件夹下的结构。包含一个springboot的项目jar包。和三个脚本,分别为重启,启动,停止脚本。start.sh脚本主要是java -jar命令 ,加上给项目分配内存数据等。public static Toolkit getDefaultToolkit()获取默认工具包。如果名为 “java.awt.headless” 的系统属性被设置为 true,则使用 Toolkit 的 headless 实现。如果不存在 “java.awt.headless” 或 “java..
原创
148阅读
0评论
0点赞
发布博客于 7 月前
SpringBoot整合Netty处理WebSocket(支持url参数)
发布Blink于 7 月前

amazonS3文件操作知识点汇总

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

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

1.首先是jwt的相关maven依赖 <!--JWT(Json Web Token)登录支持--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version>
原创
151阅读
0评论
0点赞
发布博客于 7 月前

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

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

给pdf加水印的方法

1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>2.水印图片在项目中的位置3.代码实现..
原创
182阅读
0评论
0点赞
发布博客于 8 月前

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, 并且这个
原创
273阅读
0评论
1点赞
发布博客于 8 月前

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.
原创
1433阅读
5评论
2点赞
发布博客于 8 月前

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出错的可能性极低。具体怎末选,看你是看重速度还是上传的成功率
原创
531阅读
0评论
3点赞
发布博客于 8 月前

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

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

使用ExecutorService高并发处理任务

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

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

接口的入参根据后端的定义可以分为三种:1.入参放在路径上,接口封装像下面这个: @RequestMapping(value = "/change/parentInfo/{userStudentId}/{operatorId}", method = RequestMethod.PUT) @ResponseBody public CommonResult changeParentAdviserInfo(@PathVariable(value = "userStudentId")
原创
1061阅读
0评论
0点赞
发布博客于 9 月前

个人笔记12

表数据如上。现在要求查询的列表为按outline_group_id分组,分组后组内按照sort_no排序错误的做法:这样只能得到分组的第一条记录 <select id="selectByOutlineGroupIdsAndStudentId" resultMap="ResultMapWithBLOBs"> select <include refid="Base_Column_List" /> , <include refid="Blo.
原创
97阅读
0评论
0点赞
发布博客于 9 月前

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

本文转发来自博主figo_2009的博客,这里有地址可以链接过去:https://blog.csdn.net/figo_2009/article/details/84395703。内容一样。我拿过来的目的是在从写一遍加深记忆,也可以做个保留,为以后解决,分析内存,线程问题做一些技术储备。-------------------------------------------------------...
原创
112阅读
0评论
0点赞
发布博客于 1 年前
Java知识体系最强总结(2020版)
发布Blink于 1 年前

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

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

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

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

springcloud实现分布式锁案例

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

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

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

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

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

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

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

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

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

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

通过持久化quartz来实现多节点的单启动,持久化定时启动记录问题
原创
328阅读
0评论
0点赞
发布博客于 2 年前

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

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

个人收藏学习资源连接

《后端架构师技术图谱》
原创
84阅读
0评论
0点赞
发布博客于 2 年前

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

最近在整springcloud的搭建。在搭建过程中发现一个问题。如果将zuul有关注册eureka的配置提取到配置中心,启动zuul就会报错,提示如下无法注册到注册中心:[2019-10-18 11:24:42.016] ERROR [main] RedirectingEurekaHttpClient.java:83 - Request execution error. endpoint=Def...
原创
779阅读
0评论
0点赞
发布博客于 2 年前
康威定律,作为架构师还不会灵活运用?
发布Blink于 2 年前
第九章 SpringCloud Oauth2认证中心-Zuul网关上添加认证
发布Blink于 2 年前
SpringCloud入门实战之九:服务链路追踪(Spring Cloud Sleuth)
发布Blink于 2 年前
springCloud集群案例搭建
发布Blink于 2 年前
SpringCloud整合常见的组件(Zuul,Ribbon,Feign,Zipkin,Hystrix,Config)
发布Blink于 2 年前
IDEA下Springcloud框架搭建(一)之服务注册与发现
发布Blink于 2 年前
SpringCloud 运行Eureka Server启动成功但是一直不能加载Eureka Server的Home首页
发布Blink于 2 年前

javax.crypto.BadPaddingException: pad block corrupted

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

个人笔记11

1.微信几种支付比较入参比较:主要区别在appId,app支付和小程序支付的appId都是单独的。h5和微信内支付是一样的。
原创
117阅读
0评论
0点赞
发布博客于 2 年前

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

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

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

微信的支付回调为xml格式。支付宝回调为json格式。返回的格式如何处理首先看下回调的入参经过处理后长啥样。微信的支付回调:支付宝的支付回调:微信的支付回调处理: StringBuilder sb = new StringBuilder(); String inputLine; while ((inputLine ...
原创
1224阅读
0评论
0点赞
发布博客于 2 年前

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

暂留
原创
860阅读
1评论
0点赞
发布博客于 2 年前

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

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

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

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

微信支付的流程整理和工具类记录之二《微信内浏览器支付》

所有的支付都需要相关的微信或者支付宝官网申请,我的重点是开发的流程上。具体如何申请支付的流程可以参考具体支付类型的申请流程引导。2.微信内浏览器支付。使用场景H5页面的连接在微信中点击打开后,则下面的所有操作都是依赖微信内的浏览器的,支付就需要本节说的支付方式了。官网转跳连接:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3...
原创
235阅读
0评论
0点赞
发布博客于 2 年前

微信支付的流程整理和工具类记录之一《H5支付》

目前接触的微信支付方式包括:h5支付,微信内浏览器支付,微信小程序支付。下面是开发的一些流程的经验,踩过的坑。1.H5支付:官方文档转跳-https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_41.首先生成订单。2.调用微信的统一下单接口,接口会返回一个微信的一个转跳连接到页面。这个和支付宝不同,支付宝返回的是一个html页面。注...
原创
268阅读
0评论
0点赞
发布博客于 2 年前

使用Collection.sort对List集合按对集合中的对象某一个字段排序的注意点

比较的字段类型最好为数值类型的。比如:int,double,bigDecimal,最好不要用String这个坑踩过的才知道。如果用string来比较,会出现实现不了排序的目的。另外:排序的返回值就算相等的值,不要return 0,要么1,或者-1,让他们有大小的区别。...
原创
370阅读
0评论
0点赞
发布博客于 2 年前

实现springboot项目外网操作阿里云数据库redis

阿里云数据库redis仅支持内网访问redis服务器,如果实现外网访问,则需要借助与阿里云主机进行转发请求。所以这里需要两个大步骤才能完成上述外网访问云redis.1.实现ESC-云主机转发2.模拟ssh请求到esc,esc转发请求,进而操作redis下面具体说明每一步如何操作。1.实现ESC-云主机转发这个实现是在阿里云官方文档的基础上。我多说几个注意点。实际操作还是结合官方文档:阿里...
原创
2594阅读
0评论
0点赞
发布博客于 2 年前

获取http请求的cookie的工具类:CookieUtils

Cookie: _ga=GA1.2.1692559921.1545632760; __jdu=2f2a2553-017e-4fa0-8f9c-b327655ea082; provinceCode=11; provinceName=%E5%8C%97%E4%BA%AC%E5%B8%82; __jda=86320733.15463990428281681937799.1546399043.1547...
原创
128阅读
0评论
0点赞
发布博客于 2 年前

zTree前端js

define(['jquery', 'knockout', 'text!pages/assetManage/assetType/assetType.html', 'uui', 'uuigrid', 'jqueryui', 'jqueryGrid', 'uuitree', 'uuitreeExedit'], function ($, ko, template) { var app, view...
原创
182阅读
2评论
0点赞
发布博客于 2 年前

springboot的分页实现:使用gitHub插件PageHelper实现mysql数据库查询分页功能

1.pom中引入PageHelper插件的依赖。这里引入的不是单独的PageHelper包,而是整合到springboot后的,由于冗余了mybatis-spring-boot-starter,在项目中如果没有引入mybatis的依赖。这里不用剔除掉。如果上面的pom中引入过,则这里要剔除掉。<dependency> <groupId>com.gi...
原创
1786阅读
0评论
1点赞
发布博客于 2 年前

springboot整合日志(二)----------logback( log4j2调整为logback )

springboot的日志框架别的博客上说的也比较多,很多都可用。但是我这里是有一些特殊的项目经历,值得一说。原本项目中使用的log4j2,也就是上一篇 springboot整合日志(一)----------log4j2 中讲的。结果由于要部署到京东云上,他们的日志收集系统要求用logback的控制台输出日志。通过控制台就能收集到日志,并声称日志文件。所以我们的项目就要改造成logback的...
原创
2308阅读
0评论
0点赞
发布博客于 2 年前

springboot项目间接口调用实现:RestTemplate

springboot项目间的远程调用,springboot本身封装了两种方法HTTP调用方式:1.feign的远程调用(http接口调用)2.RestTemplate下面参考别的博客我自己的项目来介绍这两种方式~1.feign实现springboot/springcloud间的远程HTTP调用参考博文:springboot feign使用1.1 pom文件中添加相关依赖之前是sp...
原创
30812阅读
2评论
3点赞
发布博客于 2 年前

servlet容器,web容器,spring容器,springmvc容器的区别

这个理解我可以通过一个http的页面请求来说明。web容器中有servlet容器,spring项目部署后存在spring容器和springmvc容器。其中spring控制service层和dao层的bean对象。springmvc容器控制controller层bean对象。servlet容器控制servlet对象。项目启动是,首先 servlet初始化,初始化过程中通过web.xml中spri...
原创
7139阅读
8评论
31点赞
发布博客于 2 年前

springboot通过自定义注解实现AOP角色权限校验

这里有几个地方需要注意:1.自定义注解 2.aop,拦截器,过滤器的区别?1.在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解:  元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:1.@Target,2.@Rete...
原创
4329阅读
2评论
1点赞
发布博客于 2 年前

springboot自定义拦截器实现接口调用前的登陆校验

最近用springboot项目开发了一个后端的接口应用层。但是业务上要有最基本的登陆状态的校验,就选择用拦截器来实现这个功能。因为拦截器本身的特性就是在进入controller和业务层前会拦截每次请求,在这个拦截中进行判断登陆信息在合适不过。自定义拦截器实现比较简单。分为两步:1.通过implements HandlerInterceptor来实现自定义拦截器。2.通过 implement...
原创
3842阅读
0评论
1点赞
发布博客于 2 年前

springboot整合mybatis操作mysql数据库使用的一些注意点和知识点

工作这几年接触的项目从sssm单maven项目到springcloud的聚合maven项目,和dubbo框架的spring聚合maven项目。发现同事有些在操作mybatis上的盲点,或许你也曾经中招过。现在使用的是springboot项目整合的mybatis,就根据这个说吧。有些都是通用的。这里主要集中在dao层和mapper文件上,配置上。1.配置部分1.1首先是springboot引入...
原创
1315阅读
0评论
0点赞
发布博客于 2 年前

springboot整合amazonS3,封装上传文件接口

之前整理过spring整合amazonS3的博客,也整理过遇到的问题和文档。今天整理下springboot项目下如何使用amazonS3,并且如果是封装接口的话,是怎样的?1.项目结构2.在pom.xml中引入amazonS3的依赖。这一个就行 <dependency> <groupId>com.amazonaws</gr...
原创
5691阅读
2评论
1点赞
发布博客于 2 年前

mysql升级版本后正常执行的sql报错:Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

业务场景是这样的:本地测试接口时用的本地mysql数据库是低版本的5.1.55-community,没有问题。但是上到测试环境后,执行同样的接口请求,却报了sql异常。测试环境的mysql库是1.8高版本的,感觉问题出在版本上。加上本地测试没问题,可以肯定是数据库的问题。剩下的就是排查数据库哪方面的问题了。报错信息如下;Error querying database. Cause: com....
原创
3535阅读
0评论
0点赞
发布博客于 2 年前

springboot整合日志(一)----------log4j2

接触最早的日志框架是log4j和logback这俩。log4j2是最近项目用到的,查资料看博客,发现log4j2是log4j的重写的二代框架,在多线程写日志的解决了死锁问题,在速度上快了10倍甚至更高。并且在springboot的版本上,spring boot 1.3版本支持log4j,在spring boot 1.4的版本中,就需要使用log4j2,否则会出现如下错误:Project build...
原创
539阅读
2评论
1点赞
发布博客于 2 年前

springboot整合redis实例

项目中用户中心登陆,登出,保存用户记录这些session信息,需要用到redis来保存,操作。本demo是用的redisTemplate实现缓存的。下面是具体的配置。只要按照这个来,就能配置好你的springboot整合redis,后面会有一个redis的版本问题需要注意就行。不然数据写不到redis中。单个springboot项目,本地测试。需要的外在环境:1.idea说真的,强忍两天不熟...
原创
383阅读
0评论
0点赞
发布博客于 2 年前

idea右键新建java文件,发现竟然找不到

新导入一个项目,是集成maven项目,然后有些项目是结构比较标准的maven项目,有些不太标准,idea就无法识别那些是java文件所在的资源文件,那些是配置文件所在的文件,那些是测试类所在的文件。都用默认的folde类型。这时可以认为给每个文件指定是什么文件即可。比如下面这两个项目,1的项目结构不是标准的maven结构,2的是比较标准的maven结构。这时1中的main下的文件默认是folde...
原创
2326阅读
0评论
1点赞
发布博客于 2 年前

页面上传bmp格式图片报错:net.sf.jmimemagic.MagicMatchNotFoundException

最近碰到这个问题,页面上传图片,gif,png,jpg,jpeg都能正常上传,但是bmp格式的就报错,查看后台日志确实是报错了,原因就是jmimemagic包找不到对应的类型。报了个类型不匹配的错误。我的解决办法总体来讲并没有正面解决这个问题。而是后台判断图片的格式,如果是bmp格式,就直接返回页面提示信息:不支持的图片格式类型。后台是dubbo服务,在消费端先是报错:java.io.IOExc...
原创
856阅读
0评论
1点赞
发布博客于 2 年前

商城首页搜索引擎之初见——solr技术的应用

目前的java应用的搜索引擎常见的有两种:Elasticsearch与Solr,他们都是基于apach基金会的Lucene为内核开发的。看到一篇不错的介绍,如果感兴趣可以好好看看,收获颇多。1.[搜索引擎选型调研文档](https://www.cnblogs.com/chowmin/articles/4629220.html),2.[sola](https://blog.csdn.net/m18611233365/article/details/48770389)上面这两个建议看看,能大致了解了啥事
原创
1079阅读
0评论
0点赞
发布博客于 2 年前

如何实现ssm框架下web端http请求的cookie在server端获取?

目前在看系统的登陆这块权限校验的逻辑。发现是通过获取cookie并在response的header中返回给浏览器。如何做到的呢?用到的就是springmvc的拦截器配置。&lt;mvc:interceptor&gt;1.在spring-servlet.xml中配置登陆的拦截器:LoggingInterceptor2.实现登陆拦截器,继承 org.springframework.web.se...
原创
675阅读
0评论
0点赞
发布博客于 2 年前

如何理解http无状态?如何解决无状态下的购物车问题?

http无状态的理解:无状态这个定义如何理解:http的每次请求,在事务上和前后http请求没有任何关联,对上一次请求,下一次请求没有任何影响。这个是定义,从宏观上说的,实际上把无状态说成请求独立,无关联也对~下面具体的说说。无状态在常见web应用项目中如何理解:http请求本身不具有任何上次请求会话的数据缓存。如果在不考虑cookie和session情况下,如果你已经登陆,则下一次要访问的登...
原创
2181阅读
0评论
1点赞
发布博客于 2 年前

Http协议中Cookie使用详细介绍

Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。HTTP请求+cookie...
转载
556阅读
0评论
0点赞
发布博客于 2 年前

http协议深入浅出理解之一篇看完就够了

重新学习http请求。往上搜罗各种资料。找到一片非常优秀的博客。几乎看完就理解的差不多了。当然还有一些地方后续补充。先标记转载出处,来自博客园的博主 ranyonsue 的博客:关于HTTP协议,一篇就够了,转载的目的为防止丢失,我这里全是截图。不过内容是一致的。...
转载
163阅读
0评论
0点赞
发布博客于 2 年前

获取用户真实IP地址工具类:IpUtils

获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址, 如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,所以取X-Forwarded-For中第一个非unknown的有效IP字符串。如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 1...
原创
961阅读
0评论
0点赞
发布博客于 2 年前

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean

今天把前天的sprinngboot项目和另外一个同事的springboot项目整合,结果整合完毕启动报错。网上的方法都试过了,都没有解决这个问题。后来我就把pom文件中的springboot版本由2.1.1.RELEASE换回整合前的1.5.8.RELEASE,再启动就正常起来了。所以降低到2.0一下的版本是一种解决方案。报错信息如下: . ____ _ ...
原创
26635阅读
5评论
1点赞
发布博客于 2 年前

解决mysql数据库锁表问题:Lock wait timeout exceeded; try restarting transaction (二)

今天在测试库执行一个update的脚本,结果执行半天没出来。一开始以为网络问题,执行结果慢,或者数据量大,要执行一会。结果是死活出不来了。连最简单的表查询都查不出来。最后这个update执行就报错了。...
原创
2206阅读
0评论
2点赞
发布博客于 2 年前

springboot打成war包放入tomcat的webapps中启动成功,访问controller层报404,访问页面正常

这两天老大安排新活,让我这个深陷该bug的人换换口味,搭建一个springboot框架,能够简单实现Restful风格的接口。springboot之前用过,这来回差不多有一年没有接触过了。这次搭建就遇到好几个坑,不过也都算解决了,有环境的问题,也有代码的问题,这里记录一下方便以后参考。下面具体说说吧~github项目地址:https://github.com/fenglizhang/Teleme...
原创
11618阅读
7评论
1点赞
发布博客于 2 年前

idea导入ssm框架的maven项目,依赖都没有导入,爆红一片

最近刚用idea,像我这种eclips用了几年的转战idea,还是多多少少有些陌生的东西存在。这不,今天把商城的集成maven项目,每个都是ssm框架。导进来,准备开始干活呢,发现所有的依赖spring的,日志的啥的都没有引入。在eclips中是自动引入或者ctrl+o就ok了。这里完全不知道咋办。解决办法也是一顿百度,试了好几个方法。最后就是这个截图。来了解下~把上面的全部打勾,等idea...
原创
1908阅读
3评论
0点赞
发布博客于 3 年前

no exact representable decimal result

2018-10-10 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以...
原创
2581阅读
0评论
2点赞
发布博客于 3 年前

No 'Access-Control-Allow-Origin' header is present on the requested resource.

这个问题的出错原因有多种,但是我这种估计是解决起来比较简单,但是却容易忽略的。可网上给出的各种filter,web.xml配置,nginx配置等等,都不能解决我的问题,痛苦的一上午,总算解决了。报错信息回顾:我是自己在公司的电脑上搭建了一套ssm框架用来测试接口(公司的项目无法本地启动,坑的一笔),也都用完没问题,通过前台页面ajax请求把数据传到后台进行处理等等吧。都没问题,后来公司...
原创
4935阅读
0评论
0点赞
发布博客于 3 年前

java学习的心里路程-以供自勉

刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你。 虽然T...
转载
188阅读
0评论
0点赞
发布博客于 3 年前

mapper文件中的resultMap声明实体类和表的映射关系是不是必要?

本文依照代码来说明这样一个问题:如果我们的mapper文件中没有声明字段和实体类的属性对应关系,那么查询出来的字段的值能不能放到实体类中? 答案是:如果查询的字段(org_id)和实体类的字段(org_id)完全一样。则是可以对应把值赋给实体的。如果表中的字段(org_id)对应的实体类中的属性为(orgId),则...
原创
5268阅读
0评论
1点赞
发布博客于 3 年前

mvn install时Premature end of Content-Length delimited message body错误

[ERROR] Failed to execute goal on project myMahout: Could not resolve dependencies for project org.conan.mymahout:myMahout:jar:1.0-SNAPSHOT: Could not transfer artifact org.apache.hadoop:hadoop-core...
转载
3454阅读
0评论
0点赞
发布博客于 3 年前

mybatis执行sql的几个常见场景分析

先看xml的代码在根据sql来理解下面要说的:1 持久层接口: int dynaUpdate(@Param(&amp;quot;updateinfo&amp;quot;) String updateinfo, @Param(&amp;quot;whereinfo&amp;quot;) String whereinfo);2 mapper.xml文件: &amp;amp;lt;update id=&amp;quot;dynaUpdat
原创
228阅读
0评论
0点赞
发布博客于 3 年前

js中的变量有哪些,如何使用

1.变量的作用:存储值和代表值2.变量的声明:var 变量名 = 变量值;如果只声明没有赋值(例如:var a;),不知道这个变量是什么类型的;变量名不能用中文3.JavaScript里面包含的数据类型为:字符串,数字,布尔,数组,对象,null , undefined1.JavaScript 字符串//字符串是引号引住的任意文本。您可以使用单引号或双引号:var n...
转载
405阅读
0评论
0点赞
发布博客于 3 年前

mapper.xml案例

2018-07-10 一个查询的结果当作另一个查询条件 in () 的参数 select * from sys_user where classify_id in (select id from sys_ele_user where status = '1' and is_default = '1')2018-07-10 批量新增,入参为实体类的list集合 &amp;amp;lt;!--批量新...
原创
1600阅读
0评论
0点赞
发布博客于 3 年前

解决zTree某一级新增或者删除一个子节点后如何设置节点选中,数据刷新

我们假设要操作的树就是下图这个。 1 给wwwr节点新增子节点 666
原创
3501阅读
0评论
0点赞
发布博客于 3 年前

解决mysql数据库锁表问题(一)

这个问题之前遇到过一次,但是由于不知道导致锁表的原因,也没细想,就知道表被锁了,然后让别人把表给解锁了。但是前天的一次操作,让我亲眼见证了导致锁表的过程,以及如何给lock的表解锁。1.导致锁表的原因(同志们也可以参考是不是也是同样的操作啊。。。):1.1首先是大前提我们正常的框架在service层都会有事物控制,比如我一个service层的方法要执行更新两张表,这两个表只有同...
原创
30758阅读
1评论
5点赞
发布博客于 3 年前

js 正则表达式积累

假设我们输入框的值var obj=#(&quot;id&quot;).val();1.判断输入框中的日期格式是否符合yyyy(只有年)var regu=/^(1949|19[5-9]\d|20\d{2}|2100)$/;if (!regu.test(year)) { u.showMessage({msg:&quot;请输入正确年份格式!&quot;,msgType:&quot;warning&quot;}); return fal..
原创
88阅读
0评论
0点赞
发布博客于 3 年前

个人笔记10

2018-07-04 在linux环境查看应用的实时日志命令tail -800f catalina.out使用方式:首先知道应用的日志在那个文件夹下,然后通过cd命令进入到和日志同一级后,执行上面这个命令。-800f指定最新的显示。 catalina.out是日志文件linux tail命令用途是将指定的文件的最后几行输出到命令窗口,假设该文件有更新,tail会自己主动刷新,...
原创
164阅读
0评论
0点赞
发布博客于 3 年前

mybatis一次请求在执行多条sql失败的问题解决。

昨天开发项目遇到一个问题:我service执行一次对数据库的更新操作,但是这个update语句是执行两条sql,结果在测试环境上就报错! 1.报错信息的日志文件显示: 2.我service调用的一次update请求是这个:sysEleMaterialClassService.updateChildParentId();3.这个方法最终执行xml文件里配置的sql是这样的: 然...
原创
2651阅读
1评论
0点赞
发布博客于 3 年前

清除自己电脑上的redis登陆次数

场景是这样:本地服务开启,需要本地redis启动。然后登录的时候账号登陆次数过多,还是密码错的这种 就会限制次数,或者时间,或者直接账号被锁定。这登陆次数是保存在redis中的。我们通过清除登陆次数来解决类似问题。1.首先找到redis的目录。 2.运行redis-cli.exe,执行命令 登陆 如果redis没配置密码,则直接运行flushdb就可以。有就先输入用户名密码。...
原创
134阅读
0评论
0点赞
发布博客于 3 年前

excel操作の页面下载一个excel模版

先前也做过下载和导入,也在先前的博客中写过,不过技术总在更新,现在发现一个也挺好用,页面效果,后台操作也很方便的方法。 项目框架说明:前端用的是模块化框架MOYmoy 是基于模型框架 kero 和 UI 框架 neoui 实现的应用框架,是一种前端集成解决方案,为企业级应用开发而生。 github地址:https://github.com/iuap-design/tinper-mo...
原创
393阅读
0评论
0点赞
发布博客于 3 年前

Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter

SSM框架项目启动发现启动不起来,反而控制台无限输出:Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. ,这个错误只有在和Spring集成的情况下才会出现。 每次只要出现这个错误都意味着Mybatis的存放sql操作的XML出错了,但是具体是那个XML还没法直接确认,因为这...
原创
34409阅读
6评论
4点赞
发布博客于 3 年前

java.lang.OutOfMemoryError: PermGen space解决方法

最近接触一个大项目,更新完,配置好数据源启动。启动半天一开始启动成功,但是访问地址页面一直转圈,最后报404,因为启动没发现报错,就又启动了几回,发现后台报了个这个错误:java.lang.OutOfMemoryError: PermGen space错误原因介绍:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfM...
原创
3201阅读
0评论
0点赞
发布博客于 3 年前

js技术积累--个人笔记(一)

前台js弱项,专门开一个学习贴
原创
514阅读
0评论
0点赞
发布博客于 3 年前

maven项目从svn检出,pom文件报错

刚跳入一家新公司。环境都整好了,svn插件也整好了。检出项目发现pom文件都报错。update+download好多回都不行。谁知道忽略了最基本的eclips中maven配置。
原创
1599阅读
0评论
1点赞
发布博客于 3 年前

个人笔记9

个人笔记
原创
122阅读
0评论
0点赞
发布博客于 3 年前

Excel表单的导入导出工具类(三)

数据写入excel并导出,excel模板下载都有了,这一节主要说如何从页面导入带有数据的excel到数据库。1.页面的表单提交设置&lt;form id="addform" method="post" enctype="multipart/form-data"&gt; &lt;span&gt;文件导入&lt;/span&gt; &lt;input id="
原创
306阅读
0评论
0点赞
发布博客于 3 年前

Excel表单的导入导出工具类(二)

前一节我们说了excel写入数据并导出。这一节说一下单独下载excel模板的操作。
原创
138阅读
0评论
0点赞
发布博客于 3 年前

Excel表单的导入导出工具类(一)

对报表的处理无外乎导入导出,之前也做过不少,但都一直没有相关记录。
原创
592阅读
0评论
0点赞
发布博客于 3 年前