后端开发问题解决集合
文章平均质量分 77
明天再去学习
这个作者很懒,什么都没留下…
展开
-
Mybatis之Collectin标签多层嵌套使用
关于该篇文章,主要是通过例子展示,当编写mybatis的xml文件中,出现需要使用嵌套Collection标签时候的有效写法,以此分享给大家,同时也是作为自己在业务开发中问题解决的记录。原创 2023-06-05 16:48:01 · 1734 阅读 · 0 评论 -
前后端分离架构文件上传与下载(含Vue + Spring完整代码)
本文采用前后端分离式的架构,其中涉及到文件下载的需求,文件下载在任何系统中都是比较常见的。对于前后端分离架构的文件下载与往常的写法有些许不同(试过直接使用a标签,href填上下载地址,发现行不通),所以经过查找与尝试,以下文件下载前后端实现流程供大家参考。原创 2023-03-06 08:00:00 · 5374 阅读 · 3 评论 -
SpringBoot接口返回数据脱敏(Mybatis、Jackson)
J数据脱敏有以下几种做法:1、通过自定义Jackson注解,实现在属性序列化过程中处理数据2、通过Mybatis查询数据时处理3、其他方式Jackson是Spring默认的序列化框架,以下将通过自定义Jackson注解,实现在序列化过程中对属性值进行处理。对于数据库数据的加密解密将采用Mybatis的TypeHandler处理,在我们为数据库提供数据后,会根据我们的需求,对部分数据进行加密。在读取后数据最终到我们手上前,会对读取到数据进行解密。原创 2023-02-24 09:11:22 · 2714 阅读 · 4 评论 -
SpringBoot配置信息加密(jasypt)
在我们配置文件中,经常有一些敏感的数据,比如数据源的用户名、密码、连接地址等,如果一旦这些数据泄露,那么将导致我们的数据源暴露,为了避免这一种情况发生,可以将这些敏感信息进行加密处理。以上简单讲述配置文件的基本加密使用过程,还有更多有关jasypt的高级用法,请查看官方文档。原创 2023-02-24 09:33:04 · 783 阅读 · 0 评论 -
Spring实现HTTPS双向认证
本篇博客讲的主要是双向认证,通过一些简单案例来展示双向认证的配置过程。有关单向认证和一些https配置,可以看看我的这篇博客,只有了解清楚单向认证之后,那么双向认证理解更加简单,因为双向认证基于单向认证配置,所以建议在做https双向认证之前,先把https单向认证搞清楚原创 2022-11-25 10:34:28 · 1865 阅读 · 2 评论 -
Spring实现HTTPS方式访问服务(单向认证)
本文通过Spring来配置https服务,后续会将相关的知识内容简单讲解一下,该文章主要是https单向认证,双向认证实现过程将在后续不久的另外一边文章涉及,感兴趣的小伙伴可以提前提供关注一下。原创 2022-11-24 10:28:30 · 4009 阅读 · 5 评论 -
Java多线程执行单个大任务
最近对一个接口执行进行优化,先简单说说接口的详情以及优化的方向吧。本文所提供的解决方法并不是一个好方案,但是本文的目的是在解决问题的同时,加深对线程池的了解与使用。该接口的主要工作内容是生成业务相关的图表(根据用户选择,可以生成1-n张图表),用户提交生成任务之后,便生成一个任务记录,初始状态为创建,用户将等待任务处理。任务状态有以下几种:创建、运行、失败、空数据、成功等,任务状态的变化将由任务执行情况而定。在用户提交生成任务之后,会将生成图表的任务提交到线程池中去执行。原创 2022-11-04 15:16:30 · 1925 阅读 · 0 评论 -
Java Web简化版本大文件分片上传(含前端+后端)
本着能调参数就不改代码的原则,尝试通过调整JVM来实现大文件上传,最后发现不可行,因为虽然上传的是2G文件,但是实际占用的内存却远远大于2G。于是,我按照自己的想法,写了一个简单版本的文件分片上传,简单主要是简单在后台处理上面进行了各种简化,使得文件分片上传更加简单明了。前端的文件分片上传组件,我这里使用的是WebUploader,使用成熟组件的好处是:不用自己写文件切割的相关逻辑,所有分片文件请求发送完毕之后,会触发一个最终确认的请求。迫于无奈,只能对文件上传接口进行改造,使用较为通用的文件分片上传。原创 2022-11-02 14:42:56 · 1234 阅读 · 0 评论 -
由一道面试题引发对LockSupport的使用思考,看看你中招没有
1、在使用LockSupport,最好确保对同一个线程进行阻塞和唤醒时,park和unpark总是成对出现的。因为在异步线程中,如果不能确保线程执行顺序,多个park和unpark会导致线程状态混乱,它可能因为不成对的park和unpark而导致它可能处于阻塞或唤醒。2、在对线程进行唤醒时,请确保线程是可用的(这是本文章主旨)。原创 2022-11-02 14:43:22 · 139 阅读 · 0 评论 -
Sharding-JDBC简单实现水平分库初体验
sharding-jdbc是轻量级的java框架,是增强版的JDBC驱动sharding-jdbc并不是做分库分表,是操作多个库多个表sharding-jdbc主要两个功能:数据分片和读写分离sharding-jdbc目的是:简化对分库分表之后的数据相关操作参考文档:ShardingSphere-JDBC :: ShardingSpherehttps://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc原创 2022-06-12 16:33:48 · 540 阅读 · 0 评论 -
Sharding-JDBC简单实现水平分表初体验
sharding-jdbc是轻量级的java框架,是增强版的JDBC驱动sharding-jdbc并不是做分库分表,是操作多个库多个表sharding-jdbc主要两个功能:数据分片和读写分离sharding-jdbc目的是:简化对分库分表之后的数据相关操作参考文档:数据源配置 :: ShardingSpherehttps://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-jdbc/yaml-config/d原创 2022-06-12 16:32:57 · 414 阅读 · 0 评论 -
分库分表基本了解
1、首先理解概念,什么时分库分表?分表:将单表拆分成多张表,数据分散到不同表中。分库:将单库拆分成多个库,数据分散到不同库中。2、其次,为什么要分库分表?分库分表的主要目的是提升数据查询的效率、减轻数据库的压力等。可以通过缓存、读写分离、索引等方式提升数据查询效率,通过增加硬件资源,比如内存、CPU等减轻数据库的压力。但是日益剧增的数据,使以上的方式都不足以奏效时,分库分表便是一种解决方案,虽然该方案在使用的过程中会遇到不少难题,但好在有开源技术能够帮我们解决大部分难题。分库分表主要分为以下四种方式:垂直分原创 2022-06-11 11:10:42 · 476 阅读 · 0 评论 -
Nacos作为配置中心的简单使用
一、什么是nacos,为什么选择使用nacosnacos是alibaba开源的一款具有分布式服务注册与发现、配置等功能的组件,熟悉分布式spring cloud的小伙伴一定对eureka、config不陌生。在没有nacos的时候,我们可能选择的组件eureka作为服务注册中心,总体使用感觉一般般。其次就是如果要对服务进行配置的话,还得引入config,这只是对单机下服务进行配置与刷新,如果要对集群服务进行配置刷新的话,还得额外引入bus、mq等相关组件,整体变得更加复杂。而在这里我们只是用nacos,原创 2022-05-08 16:06:12 · 7487 阅读 · 0 评论 -
Nacos注册中心简单使用(含nacos搭建集群流程)
一、什么是nacos,为什么选择使用nacosnacos是alibaba开源的一款具有分布式服务注册与发现、配置等功能的组件,熟悉分布式spring cloud的小伙伴一定对eureka、config不陌生。在没有nacos的时候,我们可能选择的组件eureka作为服务注册中心,总体使用感觉一般般。其次就是如果要对服务进行配置的话,还得引入config,这只是对单机下服务进行配置与刷新,如果要对集群服务进行配置刷新的话,还得额外引入bus、mq等相关组件,整体变得更加复杂。而在这里我们只是用nacos,原创 2022-05-07 17:08:16 · 3452 阅读 · 0 评论 -
EasyExcel组件导出Excel文件
一、问题出现最近需要实现Excel文件的导出,于是乎选择了EasyExcel组件来做这件事。二、代码实现·1、依赖导入<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version></dependency>2、controller实现类原创 2022-04-27 16:31:18 · 935 阅读 · 0 评论 -
EasyExcel组件导入Excel文件
一、问题出现最近项目中需要实现一个Excel文件导出功能,于是乎,就选择使用了EasyExcel组件来进行Excel文件的导入与导出。二、代码实现EasyExcel实现文件的导入,最主要的是需要一个Listener,全部流程如下:1、依赖导入:<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <versi原创 2022-04-27 16:33:12 · 932 阅读 · 0 评论 -
RestTemplate远程调用,响应结果中的响应头为content-type:text/plain;charset=utf-8,且数据类型转换失败
一、问题出现在使用RestTemplate发动远程调用某个api时,控制台打印了错误日志,说的是数据转换为对象失败,刚开始以为只是提供的类型不符合,后来依次试过list、map、JSONObject都是报一样的错误。报错信息类似如下:Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.List] and content type [text原创 2022-05-06 09:00:00 · 13108 阅读 · 0 评论 -
RestTemplate配置调用接口的请求头
一、问题出现通过RestTemplate发送Http接口调用时,对于请求需要携带请求头时,需要额外再进行配置。二、解决方案给请求携带请求头,有两种实现的方式:方式一:在每次发送请求时,构建一个HttpEntity对象,传入请求参数与请求头。方式二:通过配置RestTemplate,使通过RestTemplate调用的http请求都携带上请求头。三、代码实现方式一:在每次发送请求时,构建一个HttpEntity对象,传入请求参数与请求头。以下是通过postForObje原创 2022-05-04 09:00:00 · 14642 阅读 · 0 评论 -
RestTemplate处理HTTP状态码为400、500等错误码时,如何获取到其响应结果内容
一、问题的出现最近在使用RestTemplate发送HTTP请求时,服务端发送回来的响应结果中,HTTP响应码为400、500之类的,RestTemplate默认不处理这类响应结果,直接抛异常。但是,该请求的响应结果内容却是我需要用到的,因为我需要通过该请求的响应结果内容,告诉用户远程调用接口时,出现错误时问题是什么,以及通过请求返回的自定义结果集,来进行其他操作。现在我们开发中,不管用户执行该请求是否成功,返回的HTTP状态码都是200,但是会在返回的自定义结果集中的code、message去体现原创 2022-05-05 09:00:00 · 12086 阅读 · 2 评论 -
RestTemplate发送请求,配置HTTPS请求忽略SSL证书
一、问题的出现最近在使用RestTemplate发送请求的时候,出现了这样的一个问题:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target通过搜索原因,发现是RestTem原创 2022-05-01 00:00:00 · 8140 阅读 · 0 评论