后端
记录工作中走过的坑,总结一些经验,避免以后在同一个地方摔倒
打死我也不改这个bug
这个作者很懒,什么都没留下…
展开
-
java基础知识小计
关于static和非static变量的区别。static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。static修饰的变量在加载的时候先于main方法加载在内存中的数据共享区-------方法区,而非static的变量在加载的时候,是要创建变量才加载在堆内存中的。一个static变量单独划分原创 2021-05-12 13:44:48 · 184 阅读 · 0 评论 -
由于url传递的特殊字符没有编码导致的一次生产环境的bug
如题,最近对接的腾讯人脸识别接口提供给第三方公司用作人脸识别业务。调用方反馈了一个情况,部分请求会返回失败,提示appid无效。看到结果的时候感觉很离谱,毕竟在同一个环境下,部分请求提示appid无效,感觉问题没有出在appi的配置上,于是打开项目进行了debug。 debug到对入参解密的时候发现原本加密好的密文中间多了一个空格,导致服务端解密失败,最终抛出错误的接口提示。对比调用方的请求url和解密前的密文发现,是参数中的+被替换为空格导致的。上网查了一下资料,常用转义字符如下: 字符 - .原创 2021-03-25 09:41:18 · 1450 阅读 · 0 评论 -
PDF添加水印
//调用方式PDFwaterMark.waterMark('文件流', '本地缓存文件路径及文件名称', 'pdf水印文字');//方法public static boolean waterMark(InputStream in,String outputFile, String waterMarkName) { boolean boo = false; try { PdfReader reader = new PdfReader(in); PdfSta原创 2021-01-15 17:13:00 · 145 阅读 · 0 评论 -
解决Des3密文解密后中文乱码的问题
乱码byte[] src = srcStr.getBytes();解决byte[] src = srcStr.getBytes("UTF-8");在加密方法处修改了获取byte数组的编码,就解决了这个问题原创 2021-01-15 11:44:15 · 1017 阅读 · 0 评论 -
SpringMVC上传下载文件
下载代码//file 为真实文件(从ftp或者数据库中获取)try { FileInputStream fins = new FileInputStream(file); System.out.println(file.getName().getBytes()); response.setHeader("Content-disposition", "attachment; filename=" + new String((file.getName()).getBytes()原创 2021-01-14 17:01:20 · 116 阅读 · 0 评论 -
AOP小记--点滴积累学习spring
注解含义@Aspect:定义切面@Pointcut:定义切点表达式;每个Pointcut的定义包括2部分,一是表达式,二是方法签名。方法签名必须是 public及void型。可以将Pointcut中的方法看作是一个被Advice引用的助记符,因为表达式不直观,因此我们可以通过方法签名的方式为 此表达式命名。因此Pointcut中的方法只需要方法签名,而不需要在方法体内编写实际代码。spring项目需要在配置文件中添加<aop:aspectj-autoproxy proxy-target-c原创 2021-01-06 20:05:20 · 119 阅读 · 0 评论 -
SpringBoot集成Jsoup
jsoup的特性jsoup可以从url中解析出html代码,并且拥有多种解析html代码的api;maven依赖<!--jsoup爬虫爬取网页 --><dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version></dependency>原创 2021-01-02 09:38:17 · 1868 阅读 · 0 评论 -
SpringBoot集成Redis
window10安装redis服务 安装服务:redis-server.exe --service-install redis.windows.conf 卸载服务:redis-server --service-uninstall 开启服务:redis-server --service-start 停止服务:redis-server --service-stop 重命名服务:redis-server --service-name name如果只有有redis没有卸载干净,服原创 2020-12-26 13:28:49 · 223 阅读 · 1 评论 -
SpringBoot集成MySQL+MyBatis-1.0
yaml配置文件连库信息mysql连库信息中,url拼接的参数:useUnicode=true&characterEncoding=utf-8指定字符的编码、解码格式;例如:MySQL数据中使用的编码是GBK;而项目中使用的是utf-8;存数据时.数据库中存放项目中输入的数据时,会用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码将数据存储到数据库中;取数据时:在从数据库中取数据的时候,数据库会先将数据用GBK解码成字节码,然后再将字节码用UTF-原创 2020-12-24 19:24:43 · 242 阅读 · 1 评论 -
学习SpringBoot过程中看到的注解
@Target注解作用域:@Target(ElementType.TYPE)——接口、类、枚举、注解@Target(ElementType.FIELD)——字段、枚举的常量@Target(ElementType.METHOD)——方法@Target(ElementType.PARAMETER)——方法参数@Target(ElementType.CONSTRUCTOR) ——构造函数@Target(ElementType.LOCAL_VARIABLE)——局部变量@Target(Elem原创 2020-12-12 15:23:28 · 3755 阅读 · 0 评论 -
java后端请求一个端口不是433的https接口
前言java后端平时会有一些调用后端接口的需求,http协议的接口都好处理,都给httpClient就可以实现,这里就不赘述了;比较难搞定的就是https接口了,这类接口直接用httpClient去调用是不可以的,这个时候,就需要使用我们封装的工具类来实现了;代码public class CertificateValidationIgnored { //获取org.apache.http.client.HttpClient对象 public static HttpClient getNoCerti原创 2020-12-11 14:16:09 · 1109 阅读 · 0 评论 -
对接支付宝人脸识别和获取用户信息接口
h5通过服务端调用支付宝接口获取用户信息前提介绍功能快捷键总结前提介绍通过对接支付宝的接口,实现在移动端(安卓和ios)通过唤醒手机上的支付宝应用,调用支付宝的人脸识别实现实人认证;通过移动端调用支付宝sdk获取用户信息接口,实现支付宝登录app的过程;功能快捷键创建应用后等待审批,审批通过后可以看到应用的名称,appid和上线状态;秘钥管理支付宝公钥和应用公钥是两个东西,我理解的支付宝公钥是整个账号的全局公钥;应用公钥是当前账号申请的某一个应用的公钥;copy:支付宝开放平台开原创 2020-12-07 09:52:26 · 5076 阅读 · 1 评论 -
搭建一个的springboot项目
通过idea初始化一个springboot项目1.打开idea,选择Create New Project创建一个新的项目2. 通过spring initializr的方式创建项目,jdk我选择的是1.8,其他不动,点击右下角的next;3.如截图所示,填写好group和ariifact后,选择next就可以选择需要引入的依赖了;4.选择需要的依赖,这里我只引入web依赖,springboot的版本在右上角选择,这里我选择2.4.0版本;5.这里要记得切换idea项目的存储路径,建议不要存到原创 2020-12-06 14:55:58 · 121 阅读 · 1 评论 -
如何将存到数据库的附件下载下来
如何将存到数据库的附件下载下来如何读取数据库中的字节数据附件工具类总结如何读取数据库中的字节数据附件直接读取成一个byte[]数组.然后通过封装好的工具类将存储在数据库的附件下载下来;直接读取成一个InputStream文件流;工具类将byte[]数组转成文件的工具类public static boolean getPicFromStreams(byte[] bytes,String path) { try { FileOutputStream f原创 2020-11-25 16:58:19 · 601 阅读 · 0 评论 -
idea引入自己封装的jar全过程
idea引入自己封装的jar全过程封装jar包引入jar包封装jar包有时候需要将代码封装为一个jar,方便其他项目导入引用,现在通过idea创建一个简单的javaWeb项目来实现。通过build的build artifacts操作获取编译后的jar包引入jar包将目标jar放入项目的lib中,然后将其加入依赖引入后就可以在项目中使用jar包中封装的方法了....原创 2020-11-21 13:45:45 · 646 阅读 · 0 评论 -
java通过正则表达式验证uuid的格式
正则验证uuid格式应用场景最早应用的代码结果升级版应用场景有时候后端需要对指定的入参进行格式验证,判断入参是否是我们想要的uuid格式的数据,将错误格式数据排查在外.最早应用的代码public static boolean checkUuid(String uuid){ boolean isUuid = false; if (uuid.matches("(\\w{8}(-\\w{4}){3}-\\w{12}?)")) return true;原创 2020-10-31 16:54:23 · 3035 阅读 · 0 评论 -
java引入google-zxing生成二维码
生成二维码应用场景调用生成二维码代码二维码生成代码说明应用场景当客户端需要动态展示二维码图片的时候,本方法遍有了用武之地了.当前应用服务端为windows+tomcat+jdk1.7调用生成二维码代码//获取当前二维码文件夹路径String tempPath= request.getSession().getServletContext().getRealPath("/") + customPath; //当前二维码图片名 String filename = customName+ ".jp原创 2020-10-31 15:52:18 · 263 阅读 · 0 评论 -
从零开始学习ssm框架的搭建-01配置web.xml
随意说两句,虽然已经工作了一年多了,但是由于平时工作接触不到项目的底层实现和框架原理,感觉技术始终卡在一个奇怪的位置,没有什么太大的提升.于是便想着,先从最经典的ssm框架开始学习,学习的重点并不是技术,而是思路.从实际工作经验和各位大牛博客中吸取相应的知识经验,丰富武装自己的知识结构,获取更有效的学习方法,才是我写这篇博客的目的.web.xml的配置转自:https://www....原创 2018-07-08 09:53:56 · 177 阅读 · 0 评论 -
记录一下ajax提交表单的一二知识点
最近看大佬的springboot项目的时候,看到一个有意思的地方.平时我上传文件只用过提交form表单的方式,今天看到了用ajax异步上传文件,使用的事formdata,第一次见,就记录一下. var data = new FormData(document.querySelector(selectors));这里的selectors可以是元素的id,class,或者标签名;querySe...原创 2019-03-02 19:29:19 · 138 阅读 · 0 评论