访问静态资源的两种方式:部署在Nginx项目通过nginx访问以及通过springboot项目访问

需求背景:项目中需要访问前端工程页面.考虑到两种方案,一种是使用springboot项目直接访问外部静态资源文件(最好是不要将前端工程打包到后端项目中,前后端分离的项目估计也不会直接打包在一块吧)采用这种方式可以直接访问到页面,但是页面所加载的js文件找不到,一时找不到具体原因,就采用了第二种方案:将静态资源文件直接部署在Nginx服务器上;Nginx服务之前已经部署到测试服务器了,此处不再介绍部署Nginx步骤,直接说一下如何进行部署前端项目.1.确保nginx能正常访问,默认是80(此处有坑),直接
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

mysql中由于误删或是错误更新表中的某字段恢复原数据的方法

场景描述:修改测试服务器上用户表中的用户昵称,执行很简单的更新语句,由于没有添加更新的条件,导致测试服务器上的用户昵称都是一个值,这要是在正式数据库上就直接凉凉了;这里提供一下这种场景下面恢复数据的方法.自己从本地数据库进行的测试修改,直接说本地,Linux上执行方法相同,区别是数据库配置文件不同.使用数据模拟一下场景:新建表test_table,插入数据,执行模拟错误sql:-- 原数据为 小李 小明,修改为小小,模拟错误sqlUPDATE test_table SET NAME="小小"接下
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

购物车数据结构整理

最近有购物车逻辑,涉及到购物车列表,这里说一下自己的实现方式,大神们有更好的方式欢迎评论区留言.1.与前端协定好的接口协议:[ { "goodsSpecInfoList":[ { "goodsId":3, "newPrice":127.00, "oldPrice":129.00, "specContent":"", "specContentInfos":[ { "keyName":"长度", "specKeyId":1, "specValueId":2, "
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

重构优化if else

背景说明:随着业务逻辑越来越多,if else也越来越长,所以就想重新优化一下,看了一下资料,写了一点伪代码,记录一下自己的体会.场景说明: 不同的支付类型对应不同的支付类型的业务处理逻辑.1.直接使用if else处理业务逻辑: public static void main(String[] args) { String payType=""; if("待支付".equals(payType)){ // 模拟待支付的业务逻辑 System.ou
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

sql中按照指定字段排序失效

场景描述:按照查询指定类型的运动勋章,并按照勋章对应的天数进行升序排序,但是查询出来的结果是按照降序进行排序.原因:查看数据类型发现数据库中的days字段是varchar类型,对于mysql来说,是按照字符串位数进行排序.所以看到的结果感觉是按照降序进行排序.解决方案:①将days的数据类型修改成数字类型;②将字符串修改成数字类型,尝试过多种数据类型,最后发现decimal类型可以支持....
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

mybatis-plus中TableInfoHelper的TABLE_INFO_CACHE根据字节码对象获取不到对应的TableInfo对象(热部署spring-boot-devtools)

场景描述:接手公司另一个项目,持久成是mybatis-plus实现,查询用户消息列表时有问题,定位到出错的位置是下面(TableInfo 获取为null):但是实际上debug时可以看到TABLE_INFO_CACHE中有对应的字节码对象,但是就是获取不到TableInfo.解决方式:TABLE_INFO_CACHE中的相当于是一个map集合根据传入的字节码对象获取对应的表实体映射对象.TABLE_INFO_CACHE中已经存入对应的key value,最后定位发现是父工程中添加了热部署配置,
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

tortoiseGit中文件版本管理文件夹红绿色显示不一致问题

问题描述:有修改的文件显示红色图标,上层所有文件夹都显示绿色.说明:(api\src\main\java\com\api\share\controller\TestUploadController.java有改动)但是上层都是显示绿色(api\src\main\java\com\api都是显示绿色),对于一直从文件夹中提交代码的我来说很不适应,不能一个个点到最底层查看哪个文件有修改吧.尝试行之有效的解决方案:tortoiseGit–设置,按照下面的进行设置...
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

tortoiseSVN指定文件不受版本管理

选择要忽略的文件–右键选择tortoiseSVN–选择添加到忽略列表,从忽略列表中选择该文件属于哪种具体类型.
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

@JsonIgnore注解不起作用常见原因总结(持续更新)

1.@JsonIgnore作用:在json序列化时将pojo中的一些属性忽略掉,标记在属性或者方法上,返回的json数据即不包含该属性。2.@JsonIgnore不起作用的原因(可对照参考):①注意导包:com.fasterxml.jackson.annotation.JsonIgnore②注意属性的命名规范,需要使用驼峰规则.@JsonIgnore private List<SpecContentInfo> specContentInfoList;...
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

阿里云视频上传视频获取进度条问题(使用session方案,获取进度一直为0的解决方案)补充:前后端分离项目中获取进度解决方案

1.场景描述:之前用阿里云上传视频,前端反应上传视频经常出现获取视频url失败问题.但是接口我测过很多遍都是没有问题的.后台这边提供了一个视频上传的接口返回一个videoId,还提供了一个根据videoId获取视频url的接口.前端把两个接口的调用都封装在一个方法中,视频上传完成之后直接根据视频id获取视频url.这样会出现一个问题,视频文件如果时间太长,所以前端页面会请求超时,所以会上传失败.商量了一下就是将接口分开来,页面上除了有一个上传的接口,单独提供一个点击查看上传视频的按钮,分别调用两个接口.但
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

Linux查看指定时间之内日志记录命令(跨时间段sed命令失效问题说明、grep查询日志内容不全)

记录一下查看指定时间段内容的命令:使用grep:1.1 – 查询2020-11-07 15:00-16:59内容(在原来的内容test.log中进行追加,nohup.out为项目启动之后默认生成的文件,可以理解成是项目启动输出到控制台的内容输出到此文件中) grep '2020-11-07 1[5-6]' nohup.out >> /temproject/logs/test.log1.2-- 查询16:00:00-16:19:59内容并输出到指定文件test.log中(在原来的内容
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

tortoiseSVN或tortoiseGIT本地不显示图片解决方案(亲测有效)

本地中的tortoiseSVN或tortoiseGIT管理下的项目都不显示对号或是小叹号图标,解决方法:1.win+r,输入regedit,按照路径查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers],查询发现没有Tortoise相关的文件,添加的方法:本地ShellIconOverlayIdentifiers下面只有一个360的文件,选中右键选择导出,
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

TortoiseSVN 使用show log 无法查看日志问题解决方案

服务器上把仓库目录下面的svnserve.conf里的anon-access = read改成anon-access = none,或者新增anon-access = none保存后重试即可.
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

Linux上启动项目报错:nohup: failed to run command `java‘: No such file or directory

    一直使用nohup java -jar XXX.jar &启动项目,但是今天控制台报错:nohup: failed to run command `java’: No such file or directory.在此记录一下.    出现此问题的原因一般是:jdk安装问题,主要看一下环境变量配置;具体到我这边的情况来看,配置文件没有改动过,不会是配置问题;解决方案:   &n
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

springboot本地生成ssl证书使用https访问(亲测可用)

1.本地使用jdk生成ssl证书:      jdk安装目录bin下面执行:keytool -genkey -alias tomcat -keyalg RSA -keystore testserver.keystoretestserver.keystore为自定义生成的ssl证书.证书生成中需要填写的校验:将生成的证书放到springboot根目录.2.springboot项目中配置: # ssl证书设置 server: ssl:
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

Processing of multipart/form-data request failed. Stream ended unexpectedly

说一下遇到的问题:场景: 图片上传,使用postman调用接口同一照片多次上传(大小在200KB).同一接口使用http线上访问没有问题;本地使用https进行访问没有问题,但是线上https访问就会出现问题,报错提示:Processing of multipart/form-data request failed. Stream ended unexpectedly.当时对比分析:同一接口,同样是线上进行访问,http可以但是https不可以,排除配置问题,怀疑是https建立连接发送数据比http要时
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

设计模式:工厂模式(接口统一出参与入参,实现类可自定义配置响应参数以及请求参数)

    场景说明:设计生产电视的统一接口,生产每种电视的入参不同,出参也不同;具体来说需要生产小米电视、长虹电视、创维电视,每种电视生产的请求参数不同,生产完成之后的响应参数也不同。想到的统一封装的方法就是创建一接口或是抽象类,每种电视产品的出参或是入参都继承,或使用map形式,根据每种不同的产品进行个性化添加;代码结构图:电视生产统一接口:public interface ProductTV { // 场景说明:生产电视的统一接口,生产每种电视的入参不
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

设计模式:建造模式---实现对象参数的链式编程

    最近考虑项目结构优化,看过设计模式中的建造模式,自己写一下体会心得记录一下,不对之处还望指正!    建造模式官方一点的说法:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不不同的表示;自己的理解:该模式适用的场景是一种产品有多种组合形式,每种组合有自己的业务逻辑;该模式我认为主要是优化万能的if else结构;使代码瘦身不至于过于臃肿.    建造模式从我接触的业
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

设计模式:原型模式(对象构造方法之前赋值,构造方法嵌套,克隆)

    原型模式主要解决的问题就是创建重复对象,⽽而这部分对象内容本身⽐比较复杂,⽣生成过程可能从库或者RPC接⼝(远程接口调用)中获取数据的耗时较⻓长,因此采⽤用克隆的方式节省时间,克隆底层调用c++    根据自己的开发业务经验感觉此模式主要适用于对象大部分属性相同,但部分属性不同的场景.比如说考试的试卷,每个人的考题是相同的,但是姓名和学号是不同的.就这一场景进行模拟一下 .要求:小明 小红输入姓名以及学号之后就能看到自
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0

设计模式:适配器模式(实现统一接口但实现部分接口方法的操作方法:抽象类实现接口)

    适配器模式:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作;简单来说就是适配,具体到日常生活就好比是手机充电,充电器就相当于是适配器,将插座的220V电压转化成手机需要的5V电压。    适配器的三种使用方式:类适配、对象适配、接口适配。代码模拟三种适配方式(场景:执行统一充电方法给安卓手机充电):充电统一接口:public interface MobileCharge { //
分类: 其他 发布时间: 04-05 10:42 阅读次数: 0