![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
项目实战
工作中问题总结归纳
会飞地太阳
Life begins at the end of your comfort zone
展开
-
java实现二维码的生成与解析
java生成二位码技术实现的底层并不简单,二维码的生成实现方式有很多种,可以使用QRCode.jar来实现,也可以使用ZXing开发。直接上干货来看一个小demo吧!maven依赖 <!-- 生成二维码 --> <dependency> <groupId>com.google.zxing</groupId> ...原创 2020-03-31 15:20:56 · 1365 阅读 · 0 评论 -
浅谈扫码登陆功能
扫码登陆功能首先介绍下什么是扫码登录。现在手机上都装有微信、qq和淘宝这一类的软件。而这些app都有他们相对应的网页端。为了让用户在使用他们的网页时登录更加方便和安全,使用手机扫一扫就可以登录的服务就产生了。 有很多小伙伴可能会感到很神奇,网页上只是显示了个二维码,它怎么就知道是哪个手机扫到了二维码,并且进行登录的呢?而且,登录完成以后,还能直接把用户信息显示给用户,真的...原创 2020-03-31 18:03:52 · 1009 阅读 · 0 评论 -
初识JFrame、JPanel、JLabel
JFrame:java图形化界面设计,是一个顶层的框架类,相当于容器。好比一个窗户的框子,这个框子可以嵌入几个玻璃窗。JPanel:也是一个容器类,相当于一个大玻璃窗。JLabel:是一些基础组件,它必须置于某个容器里,类似于剪纸,必须置于窗户的表面。JFrame自带了一个玻璃窗。可以通过语句 Container c=getContentPane(); 获得该内容窗格。也可以定制一个新的玻璃面板替换原来的自带的玻璃窗,代码如下:JPanel jp=new JPanel();th.原创 2022-01-02 10:41:41 · 5003 阅读 · 0 评论 -
java发送get请求400解决
http发送get请求400问题解决小记: 仿佛代码有了保质期,项目在生产环境稳定运转,由于关联系统的升级意外暴露出http发送get请求的400错误。正产运行的请求为什么会突然变成400呢?难道真的是代码有保质期吗? 带着这样的疑惑,进行了一番的探索。首先,系统升级必然是要做兼容性考虑的,就可以排除是升级造成的问题;接着要追踪日志,根据错误信息定位问题。首先,HTTP400 Bad Request 原因如下:1、语义有误,当前请求无法被服务器理解。除非进行修改,否...原创 2021-12-19 12:18:17 · 3615 阅读 · 0 评论 -
maven命令更新子父项目的pom版本
在微服务项目升级中,每次迭代我们都会新拉分支同步进行版本升级,常常会用到maven命令升级工程中的pom版本。如:一个父模块下有多个子模块,父模块包含所有子模块的公共依赖。父模块的version从1.0.0-SNAPSHOT更新到1.0.1-SNAPSHOT。每个子模块都需要更新。此时即可用maven命令统一升级mvn versions:set -DnewVersion=1.0.1-SNAPSHOT //更新整个项目版本注:如果子模块与父模块本来就不一样了, 先运行mvn -N versi原创 2021-11-01 20:41:29 · 2143 阅读 · 0 评论 -
window下统计工程代码行数
此处只介绍借助cloc工具进行的代码统计:1. 下载最新cloc.exe工具,官网地址:http://cloc.sourceforge.net/2.将cloc-1.64.exe名称修改为cloc.exe,放在需要统计代码的文件夹所在目录->打开黑窗口->进入到cloc所在的文件夹,输入命令">cloc.exe CodeCount"(CodeCount即要统计代码行数的文件名);如上便得到了代码的行数。...原创 2021-08-01 15:15:25 · 1361 阅读 · 1 评论 -
unnecessary Mockito stubbings 问题的解决
这个问题是Junit提示我们在测试用例中存在没有用到的方法打桩。这个时候我们就需要对报错的测试用例进行检查,确认执行流程是否是按照我们预期进行的。如果是没有走到目标分支导致的,那么就需要改逻辑。否则就需要删除无用的打桩。在写单测时,要注意覆盖到每个分支,减少每个分支中不必要变量的定义,100%发覆盖率有助于我们测试到每种情况。...原创 2021-08-01 13:23:12 · 8456 阅读 · 0 评论 -
FixMethodOrder Junit-优先级测试
JUnit是通过@FixMethodOrder注解(annotation)来控制测试方法的执行顺序的。@FixMethodOrder注解的参数是org.junit.runners.MethodSorters对象,在枚举类org.junit.runners.MethodSorters中定义了如下三种顺序类型:MethodSorters.JVMLeaves the test methods in the order returned by the JVM. Note that the order fro原创 2021-07-04 15:35:23 · 326 阅读 · 0 评论 -
@JsonInclude(JSON include.Include.NON_EMPTY)
@JsonInclude(JSON include.Include.NON_EMPTY)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理。将该标记放在属性上,如果该属性为空字符串或者为null则都不参与序列化 。如果放在类上边,那对这个类的全部属性起作用Include.Include.ALWAYS 默认 Include.NON_DEFAULT 属性为默认值不序列化 Include.NO...原创 2021-05-29 18:02:17 · 17510 阅读 · 0 评论 -
Idea debug时报错:Command line is too long
在工作中,常常会使用debug去看一些信息,但是最近在debug的时候遇到了如下的报错这种异常的出现是因为运行项目的指令过长引起的,在IDEA进行代码运行时加载了很多指令,这些指令拼接后的长度超出了系统的最大长度。解决方法:在项目/.idea/workspace.xml文件中添加一行代码如下<component name="PropertiesComponent"> ...<property name="dynamic.classpath" value="tr...原创 2021-05-18 19:09:50 · 923 阅读 · 0 评论 -
BeanUtils.copyProperties的用法
BeanUtils它提供了对java反射和自省API的包装。它里面还有很多工具类,这里我们介绍一下copyProperties。场景:我们如果有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm,传统的方式对属性逐个赋值:user.setName(tempUser.getName());user.setAge(tempUser.getAge());如果按照上面那种赋值方式,是非常麻烦的,而且代码梁可以估计会很多.原创 2021-04-20 22:34:53 · 2074 阅读 · 3 评论 -
Java调用百度API实现地址和经纬度互转
在近期的项目中有地址转经纬度的需求,要在地图上进行展示。大多数同事都推荐百度地图,此处特做一个小结,方便使用。百度地图开发者秘钥AK申请此处省略。百度API官网:http://lbsyun.baidu.com/index.php?title=webapi直接上代码package com.jo.common.utils.AddressUtil;import com.alibaba.fastjson.JSON;import com.jo.common.utils.StringUtil原创 2021-03-09 19:10:05 · 4707 阅读 · 3 评论 -
Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String原因是mybatis 对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在xml代码中只保留非空判断就正常了。...原创 2021-01-29 16:19:27 · 3779 阅读 · 0 评论 -
org.springframework.http.converter.HttpMessageConversionException: Type definition error: xxxx
org.springframework.http.converter.HttpMessageConversionException: Type definition error: xxxx看到这个错误时,感觉很懵。原来是查询的实体类上忘记加@Data注解,就是实体没有get/set方法原创 2021-01-29 16:12:58 · 607 阅读 · 0 评论 -
java.lang.IllegalStateException: Ambiguous mapping. Cannot map ‘xxxController‘ method
java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'xxxController' method场景: 在运行springboot项目时,出现了上述异常:模糊映射,无法映射的xxx方法。异常原因: 经过排查,原来是两个controller层在类上使用了相同的映射名,也就是说同一个项目中有两个@RequestMapping("/xxx")完全相同,就会报此错误信息。在协同开发时,遇到了这样的错误...原创 2021-01-28 13:03:30 · 6200 阅读 · 0 评论 -
关于远程连接挂载磁盘的理解(.bat文件、批处理)
每个公司都有自己的一套部署项目的架构风格,本博客对此做出梳理,高手可以忽略,希望广大读者可以留下宝贵的意见,望不吝赐教!远程挂载网络磁盘实际上,这个操作与使用nfs共享一个文件的方法是相同的。思路是服务端将一块磁盘空间本地挂载到一个目录,然后通过网络使用nfs将这个目录进行共享,客户端最后将服务端共享的目录挂载到自己本地的一个目录,这样就使客户端拥有了一块网络磁盘。优点:服务端的同一块磁盘可以挂载到不同的客户端,实现文件的共享;可以扩充客户端的存储空间。缺点:依赖网络,当网络连接失败,客户.原创 2020-12-26 18:59:50 · 1220 阅读 · 1 评论 -
Axure原型html无法打开问题解决
使用Axure 做好原型之后导出到html中,但是这个html始终无法在谷歌浏览器上打开,每次打开就自动跳转,如下提示:解决办法:方法一.下载谷歌浏览器插件安装链接:https://pan.baidu.com/s/1yWtarEW3rT_OB8za7OFRvQ提取码:3hm1下载之后直接解压,安装:右上角三个小圆点->设置->扩展程序(这三步可以chrome://extensions/解决)->加载已解压的扩展程序再次打开即可。。。方法二:修改一下Ax..原创 2020-12-25 13:46:27 · 6916 阅读 · 1 评论 -
SpringBoot返回JSON实体类属性大小写问题
在今天的开发中遇到了这样的问题,由于前后台使用了模板方法,导致在前台获取值时必须使用大写的属性名,在后台设置大写属性后返回给前台的数据却变为了大小写混合的状况。百度后找到解决办法:@JsonProperty,此时又遇到了两种情况:1.注解放到属性上,则返回的数据既有大写也有小写2.注解放到getter方法上,返回的只有大写,没有了自动变为小写的问题。完美解决。特作出记录。。。...原创 2020-12-21 10:43:46 · 2022 阅读 · 0 评论 -
解决oracle使用rownum排序分页排序字段不唯一导致分页错误
今天在调试项目时发现Oracle使用rownum排序分页时出现了数据错乱的问题,前后端分离开发由于结合前端的插件使用只能在控制台定位错位在哪,经过排查发现前台传值没有问题,就去后端排查,最终定位了问题的所在,经过一番百度问题得以解决,原来排序的字段的值有很多都是一样的,典型的order by字段值不唯一造成分页记录混乱。 解决办法:在排序的时候加一个值唯一的字段就可以了,最好是id。但是这样会造成效率的降低, 目前还没有找到最合适的解决办法,希望看到的朋友能过给...原创 2020-12-17 19:46:11 · 660 阅读 · 0 评论 -
java对象和json常见的互转
在之前的博客中有介绍到如何把HttpEntity转为json:https://blog.csdn.net/duan196_118/article/details/107353704。今天来总结下java对象与json之间的互转。项目中,使用缓存来减少服务器的压力,常常会把java对象转为json进行存储,读取的时候再转为java对象,便于前台的展示。当然这里只是其中一个常见的场景。高手可以忽略,不喜勿喷!!!1.把java对象转为json字符串 BigPcEntry bigPcE原创 2020-12-08 15:30:07 · 313 阅读 · 0 评论 -
java 定时获取城市气象信息
免费的气象信息获取会有次数的限制,所以存在需要后台去获取到气象信息进行存储,然后定时去更新气象信息来避免因为次数限制而导致程序的不可用。经过一番百度,终于找到了可以使用的数据。http://api.k780.com/?app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json可以参考文章:https://www.cnblogs.com/yunjuany原创 2021-01-09 11:43:46 · 393 阅读 · 2 评论 -
解决 The Tomcat connector configured to listen on port 8888 failed to start
时隔一晚上,服务器中的项目竟然无法启动最新版的.jar,报错The Tomcat connector configured to listen on port 8888 failed to start.瞬间心态崩了啊。。。允许自己默哀三秒钟,但还是要冷静的查找并解决问题。。。根据报错信息是端口被占用了,但是服务器中明明没有启动该项目啊!一脸懵逼...... 解决:1.打开cmd命令窗口,输入netstat -ano命令查看所有端口和PID。2.找到对应8888端口对应的...原创 2020-09-28 10:33:17 · 1811 阅读 · 0 评论 -
Windows连接远程桌面时出现黑屏的解决办法
在工作中,客户购买了Windows服务器后,为了操作方便我们经常使用远程桌面功能,有时候难免会遇到一些问题。比如连接时出现桌面黑屏,导致无法继续进行操作,本篇博客就记录一下解决办法。高手可以忽略,不喜勿喷! 解决办法如下:1.使用远程桌面,输入您服务器的IP地址登录服务器,登录后出现黑屏或无法显示桌面。按ctrl+Alt+End,激活远程桌面中的任务管理器。2.在任务管理器中查看进程标签explorer.exe进程,并点击右下角"结束进程",将该进程结束。3.在Win...原创 2020-09-28 10:17:36 · 39027 阅读 · 7 评论 -
Spring Boot如何实现参数校验
开发过程中,参数的校验是必不可少的。前端的校验是为了用户体验,后端的校验是为了安全。试想一下,如果在controller层中没有经过任何校验的参数通过service层,dao层一路传到了数据库就可能导致严重的后果,或许查不出数据,若包含了恶意的代码,那就可能导致更严重的后果。 还记得在最初接触Hibernate时,感慨框架功能的强大,其中就有通过配置文件便可以实现自定义参数的校验,那么功能强大的Spring是不是也可以呢?答案是肯定的。 Hibernate Val...原创 2020-09-22 17:20:39 · 752 阅读 · 0 评论 -
如何把APP放在服务器上供用户下载
APP在上架时需要各个平台的审核,很费时间。而客户又急着测试,怎么办?作为程序员怎么能被难倒呢?一个个拷贝肯定不是咱们的风格啊。。。只需要几步就可以实现哦,高手可以忽略,不喜勿喷。1.安装tomcat2.把Apk文件放在webapps/root目录下3.启动tomcat4.在浏览器中搜索 服务器IP:端口/apk文件只需要这几步就可以完成app的下载了哟!这里只简要赘述操作步骤,相信对于长期处于IT行业的我们,看了就明白!...原创 2020-09-21 14:59:56 · 3410 阅读 · 2 评论 -
阿里云对接国际短信
之前有介绍过阿里云的短信对接,博客位置:https://blog.csdn.net/duan196_118/article/details/107629866 如今的国外项目中需要对接国际短信。其实是一样的套路,在购买阿里云的国际之后,获得AccessKey ID 和 AccessKey Secret。参考阿里云提供的案例便可以实现功能。高手忽略,不喜勿喷。参考地址:https://www.alibabacloud.com/help/zh/doc-detail/158405.htm...原创 2020-09-16 11:03:51 · 2123 阅读 · 8 评论 -
阿里云域名和ip绑定步骤
原博客地址:https://blog.csdn.net/shengqianfeng/article/details/77587293#comments 1 进入阿里云控制台,找到域名控制台,选择需要绑定的域名点击【解析】2 添加解析主机记录:www :将域名解析为www.example.com,填写www;@...转载 2020-09-14 17:04:47 · 1062 阅读 · 0 评论 -
layui数据表格某个字段不显示问题(table踩坑)
今天在进行layUI表格渲染时,出现一个奇怪的现象,后台打印可以获取到对象的属性值,而前台页面却无法显示。再三核对属性名发现并没有错误。心中万分纠结!!!后台打印:前台渲染:结果却出人意料,经过一番排查,发现在传值过程中mStatus 被改为了mstatus。。。这个坑真让我大跌眼镜!做出修改之后,页面可以正常显示。。。这其中的原因我还不是太明确,希望看到的小伙伴可以留下宝贵见解哦。望不吝赐教!!!...原创 2020-09-04 12:41:58 · 2716 阅读 · 5 评论 -
MySQL报错:Parameter index out of range (2 > number of parameters, which is 1).解决
Exceptions: Parameter index out of range (2 > number of parameters, which is 1). 在Navicat中运行sql语句正确,但是Java程序却出现了这样的报错。让我纠结了很久。 原来在sql语句中,由于需求的变化,注释了之前的sql语句(/* sql语句*/),重新进行了编写。导致出现错误,-- 只要把注释去掉或者改成正确的注释格式就可以成功运行。 真真是踩了一次坑。。。 建...原创 2020-09-03 09:35:46 · 4597 阅读 · 2 评论 -
springboot配置https访问
1.首先去腾讯云或者阿里云申请免费ssl证书,以腾讯云为例,不建议自己生成,因为没办法测试发布环境的效果,填写个人信息,最后提示审核中才是申请成功,审核比较快,半小时就通过了。2.下载已经通过审核的证书文件夹,解压文件如下,根据项目选择使用,3.因为springboot使用的是内置tomcat,所以我这边选择tomcat文件,在...转载 2020-09-01 15:39:30 · 12896 阅读 · 11 评论 -
shiro整合swagger解决,swagger界面空白,网上配置有问题,亲测有效
之前有介绍过swagger在线文档踩过的坑,最近的项目环境是springBoot+shiro,这里配置之后发现访问swagger首页时出现空白页面,特做一个配置的记录,亲测有效。 filterChainDefinitionMap.put("/swagger-ui.html", "anon"); filterChainDefinitionMap.put("/swagger-resources/**", "anon"); filterChainDefiniti原创 2020-08-26 09:28:34 · 1273 阅读 · 0 评论 -
使用MyBatis-Plus框架,访问Mapper中自定义的方法时报org.apache.ibatis.binding.BindingException
问题描述项目为SpringBoot项目,持久层使用MyBatis-Plus框架。框架将基本的增删查改都进行了封装,大部分SQL都不需要写了;不过项目的数据表存...转载 2020-07-31 18:14:42 · 787 阅读 · 0 评论 -
idea自定义模板生成对应实体类
关于idea上篇文章介绍到可以连接到数据库,并可以在idea中操作数据库。但是对应的实体类还有很多不如意的地方,本篇博客就介绍如何配置自定义模板生成实体类。右键选择表,再选择Generate POJOs.groovy 那一项:进来只有Generate POJOs.groovy,右键新建另外一个比如我的叫做:Generate MyPOJOs.groovy,里面内容如下:import com.intellij.database.model.DasTableimport com.inte.原创 2020-07-29 12:31:50 · 776 阅读 · 0 评论 -
Xshell连接不上阿里云报错:connection failed的解决方案
对于默认开放的端口如80,22等,xshell如果连接不上可以参考原创博客。原创地址:https://blog.csdn.net/longgeaisisi/article/details/78344285对于那些如数据库的端口3306,如果拒绝访问的话,需要我们开放端口号。后续会更新此文章。...原创 2020-07-28 16:29:28 · 937 阅读 · 0 评论 -
手把手教使用阿里云短信接口发送短信验证码
阿里云短信官网地址1.创建短信签名审核非常严格,多试几次就好。2.创建短信模板3.添加maven依赖<dependency> &...转载 2020-07-28 10:08:56 · 909 阅读 · 0 评论 -
验证码工具类
验证码在项目中几乎是再寻常不过的了,本博客只为了使用时的方便特进行一个记录。高手可以忽略,不喜勿喷!废话不说,直接看工具类import java.awt.*;import java.awt.color.ColorSpace;import java.awt.image.BufferedImage;import java.util.Random;/** * 验证码工具类 */public class CaptchaUtil { /** * 生成验证码 *原创 2020-07-20 17:02:23 · 279 阅读 · 0 评论 -
连接MySQL数据库Host is not allowed to connect to this Mysql server 问题的解决办法
在cmd中连接上MySQL1.执行 use mysql ;2.执行 update user host = '%' where user ='root';3.执行 flush privileges;最后一定要执行第三步刷新MySQL的权限相关表!!!原创 2020-07-16 18:29:54 · 1105 阅读 · 0 评论 -
mysql 1293 错误的解决
在部署项目时,我们的生产环境和测试环境一般都是一致的,但是在部署项目时偶尔也会遇到MySQL环境不一致的问题。遇到的坑特意记录一下。我是把MySQL5.7环境中的sql脚本导入到MySQL5.5环境中,中间出现了1293、1071错误。1293错误: 是由于我们的建表语句中有两个时间字段(比如创建时间、更新时间),解决办法可以是指定插入时间,也可以使用数据库的默认时间。1071错误: 是由于字符集utf8情况下在var插入最大字符只能设置255,超出会报错。...原创 2020-07-16 18:25:21 · 1978 阅读 · 0 评论 -
FastJson-从httpEntity到Json
在对接第三方接口时返还的数据是HttpResponse,如何从response中取到相应的code值呢?特作出一个总结:1.从response中可以得到httpEntity实体 HttpEntity entity = response.getEntity(); EntityUtils.toString(response.getEntity())输出的结果为:2.String转换为JsonObject格式JSONObject jsonObject = JSON.pars原创 2020-07-15 10:15:34 · 2319 阅读 · 0 评论 -
Java实现MD5加密
MD5加密是一种常见的加密方式,经常用在保存用户密码和关键信息上。MD5加密的特点主要有以下几点: 1、针对不同长度待加密的数据、字符串等等,其都可以返回一个固定长度的MD5加密字符串。(通常32位的16进制字符串); 2、其加密过程几乎不可逆,除非维护一个庞大的Key-Value数据库来进行碰撞破解,否则几乎无法解开。 3、运算简便,且可实现方式多样,通过一定的处理方式也可以避免碰撞算法的破解。 4、对于一个固定的字符串。数字等等,MD5加密后的字符串是固定的,也就是说不管MD5加密多原创 2020-07-08 17:46:02 · 411 阅读 · 0 评论