- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 谷歌邮箱无法显示使用 Base64 处理的图片的正确解决方法
谷歌邮箱无法显示使用 Base64 处理的图片的正确解决方法前文本次做了一下邮件发送,邮件中包含自定义模板和logo,初始logo使用的是url地址,但后期思考,如果地址失效或者网络问题等则会导致logo无法显示,于是乎就将logo改为了base64的形式,本以为天衣无缝,结果遇到了google邮箱,src属性直接丢失。这里经过查询是因为,Google不兼容base64形式的编码头且路径必须使用https开头,那怎么办呢?可以使用静态文件的形式,发送文件。1、为了使得代码不要重复修改,将插入图片文件
2021-01-27 11:10:08 3820
原创 list为null,但是list.size() = 1解决方案
今天写代码遇到一个很奇怪的问题,那就是我使用SQL查询的结果为null,当把结果用一个list接收的时候,出现了NPE,我明明已经做了非空校验啊然后百思不得其解,先使用了一个较笨的方案。。。解决方案1:java代码:if (!list.isEmpty()) { if (list.get(0) != null) { //todo }}但是这种方式,不太靠谱,为什么呢?因为如果你的list中包含多个数据,而你不知道他给了你的null的数据,毕竟list.add(null)可以有多次执行的
2020-10-22 19:46:59 9419 4
原创 JAVA输入任意一个数,判断是否是回文数
**JAVA输入一个数,判断是否是回文数**回文数“回文”是指正读反读都能读通的句子,回文数顾名思义就是正反都顺序一致的特殊数字,所以我们首先要做的就是确定输入数字的个数。 String s = String.valueOf(num);//将数字转换为字符串,方便后期处理 long t ; int count=0,flag = 1; while(num!=0){ t ...
2019-05-13 20:35:56 8516 9
原创 【Java】基于Swagger实现接口混淆
因为你开发的接口要给人对接,那么对于前端来说,就需要看到正常的请求参数才可以,你加了混淆,没有通知到前端,那么请求参数肯定是不对的,所以就利用了swagger可以生成文档的特性来处理这个混淆的生成。要做接口安全设计,保护后端接口安全的安全性,还可以针对接口的请求响应做改变,比如将原本的参数改为一个映射后的值,请求参数先去解析再转成我们的对象,保证我们的接口的含义不能被外部轻易理解,进而维护接口的安全。我们使用的是Ruoyi框架,所以基于Spring security,只需要注册我们的拦截器就可以了。
2024-07-15 15:37:40 355 1
原创 接口安全设计之接口验签
最近接到一个需求,在海外客户还款之前,都是通过一个还款链接去还款,但是还款链接内没有任何的客户信息,所以需要还款之前,进入一个前置信息确认页面,就需要后端先提供一个查询接口给前端,但是需要参数明文传递给前端,其中包含订单号,金额及还款类型。在原本的请求链接不变的情况下,加一个sign参数,针对当前参数进行签名,在请求后端的时候,需要先验证签名,如果验签不通过,则直接返回error,否则认定参数没有被修改,继续生成还款链接。当请求到达后端之后,去查询当次请求的参数,然后去生成真实的还款链接给客户还款。
2024-04-02 15:12:29 718 1
原创 【Java】java基础知识整合
Java虚拟机是一个可以执行Java字节码的虚拟机进程,Java源文件被编译成可以供Java虚拟机编译的字节码文件,Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者重新编译,Java虚拟机让这个变成可能,因为它知道底层硬件平台的指令和其他特性JDE和JRE的区别是什么JRE :Java运行时环境,是将要执行的Java程序的Java虚拟机,同时也包含applet需要的浏览器插件,JDK:是完成的Java软件开发包,包含了JRE,编译器和其他工具。
2023-05-07 16:39:11 556
转载 【无标题】
记一次解决IDEA导致CPU 100%卡顿的解决方案转自:https://www.jianshu.com/p/ac72a14afc24修改配置参数:#堆栈设置-Xms4096m-Xmx4096m-Xmn3072m-XX:MetaspaceSize=1024m-XX:MaxMetaspaceSize=1024m-XX:+AlwaysPreTouch-XX:InitialCodeCacheSize=1200m-XX:ReservedCodeCacheSize=1200m-XX:+UseC
2022-01-20 15:27:31 130
原创 Java paypal如何实现付费订阅(循环扣费)
背景业务需求要集成Paypal,实现循环扣款功能,初识PayPal开发文档,搞得人一脸懵逼,终于完整实现所有功能,这里对如何使用Paypal的支付接口做下总结。账号申请页面地址:https://www.paypal.com/us/webapps/mpp/account-selection进入:因为我没有商家账户,所以使用的个人账户。注册完成后,进入开发者应用页面页面地址:https://developer.paypal.com/developer/applicationsapi阅读订
2021-11-10 11:22:18 2805 15
转载 SpringBoot中Service实现类添加@Service却任然无法注入的问题
搞了我半天的东西,竟然失误在了@MapperScan这个注解上,难搞。下面那位老哥和我的问题一模一样。https://www.cnblogs.com/Jerryoned/p/13138559.html
2021-06-09 14:54:40 1420
原创 记一次数据源配置问题
问题背景数据库由单体改为主从结构,部分数据需要从从库读取,所以加入了动态数据源配置-Dynamic动态数据源配置,引入了以下依赖:<!--动态数据源配置--> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <ver
2021-06-04 19:19:59 190
转载 Java细节:字符串的拼接
Java细节:字符串的拼接工作日忙于项目的逻辑实现,周六有点时间,从书柜里拿出厚厚的英文版Thinking In Java,读到了字符串对象的拼接。参考着这本书做个翻译,加上自己思考的东西,写上这篇文章记录一下。不可变的String对象在Java中,String对象是不可变的(Immutable)。在代码中,可以创建多个某一个String对象的别名。但是这些别名都是的引用是相同的。比如s1和s2都是”droidyue.com”对象的别名,别名保存着到真实对象的引用。所以s1 = s2fileos:
2020-12-30 15:11:13 165
原创 CSV踩坑大全
之前做了好几个关于CSV文件下载的接口,真的是踩坑无数啊!今天有时间在这里把所踩的坑都总结一下,避免以后出现问题。众所周知,CSV其实就是一个文本文件,占用的空间很小,行与行之间使用 ','分割,可以用Office打开,那这么简单的一个东西会有什么问题呢?数字变成科学计数法如果数字超过15位后,它的第16位及以后的位数都会变成0,怎么解决呢?那就是把他变成文本。 /** * 字符串处理和赋值 * * @return */ public String
2020-12-21 19:53:15 582 3
原创 【MySQL】Subquery returns more than 1 row 最全解决方案
【MySQL】Subquery returns more than 1 row 解决方案原因:子查询出现多条数据数据解决办法: * 检查sql确保子查询只会返回一条数据 * 如果是多行数据,就不能使用=,可选择in * 添加any方法,但是注意any,all方法必须与一个比较操作符一起使用 * limit 1(根据业务来定,不推荐)...
2020-09-21 17:09:18 11134
原创 java学习-深克隆与浅克隆
深克隆与浅克隆详见代码:import lombok.AllArgsConstructor;import lombok.Data;/** * clone的要求 实现CloneAble接口 修改clone方法为public,然后覆写clone方法 * 分类:深克隆与浅克隆 * 浅克隆:实现对对象中的 基本数据类型与引用类型地址的复制 * 效果:基本数据类型全复制 引用数据类型 对引用对象地址进行复制 当clone对象修改后,如果修改了引用类型,则会修改到原本的对象, * 这样的做
2020-09-14 14:47:45 314
原创 java螺旋矩阵的设计与实现
java螺旋矩阵的设计与实现所谓螺旋矩阵就是矩阵的走向是类似于旋转的方式,而我们要做的就是生成这么一个旋转路径,遍历并赋值给矩阵中的每一个元素。分析:我们先生成一个空数组,那么其 所有值都为0,然后我定义起始位置(此处需要注意的一点就是你所要的起始位置一定是可以走出去的,否则就会进入死循环,其次你的路径可以随意修改),此处让他按照→↓←↑的方式运动,判断的依据就是当前位置的下一经过路径为0,结束时间就是我们的值的终值就是行乘列。public class SpiralMatrix { publ
2020-09-11 09:38:05 664
翻译 Error attempting to get column ‘upload_time’ from result set.: Cause: java.sql.SQLException:不支持的类型
Error attempting to get column ‘upload_time’ from result set.: Cause: java.sql.SQLException作为一个菜鸟,今天遇到这么一个问题,真的是万万没想到啊!问题的解决方法这么简单!!!问题叙述:数据库表字段 upload_time为datetime类型,接收实体类对应属性为LocalDateTime类型。开始报...
2020-04-05 00:14:33 1215 3
原创 超详细的mysql主从复制教程
MySQL主从复制1、复制概述Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送...
2020-01-14 17:36:03 730 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人