自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 若依springboot接入feign踩坑记录

简单的项目采用了若依的前后端分离版本单体应用,之前采用forest请求调用第三方接口,改为feign接口调用后,引入feign报错。springboot版本和springcloud版本不一致导致。问题解决,版本对照可参考。

2024-02-29 15:45:52 513

原创 【java批量导出pdf】优化方案

项目中存在web页面点击一键导出,导出所有数据对应的pdf文件,由于有些pdf文件是实时生成的,之前最简答的写法for循环处理速度太慢,超过了nginx配置的最大响应时间了,且对用户交互体验上很不友好,所以进一步进行优化。2.通过threadPoolTaskExcetor.submit()方法进行多线程任务处理。第二步:具体的task需要实现callalbe。1.对大量的数据进行分段处理;第一步分段处理后的list。

2024-02-04 11:29:28 977

原创 【java】对外开放接口的签名认证方案

参考文章:1.2.3.4.

2024-01-30 16:36:13 425

原创 【问题解决】java-word转pdf踩坑

word转pdf

2024-01-24 10:52:27 570

原创 【问题解决】Java-生成word和pdf中文乱码(小方框)

word字体乱码

2024-01-24 10:01:30 913

原创 【问题解决】Mysql插入时间多了一秒

java日期处理

2024-01-18 16:16:31 441

原创 Java 将对象List转为csv文件并上传远程文件服务器实现方案

在MappingsBean类中,我们留下了CsvBindByPosition注释 - 以控制排序(在此解决方案中, CsvBindByName注释)。由于自定义映射策略,标题列名称包含在生成的 CSV 文件中。最近项目中遇到了根据第三方系统传递过来的参数,封装为List<实体类对象>后,将该实体类转换为csv文件,然后上传到远程的sftp服务器指定目录的需求。1.最开始遇到了生成的csv文件的第一行生成的字段名,变成了实体类的大写字段名了,例如userName变为USERNAME并且排序混乱。

2023-10-27 17:08:39 889

原创 Mybatis传参为对象列表的查询处理

上述代码中,我们使用了 标签遍历传入的 List 对象,并且在每次遍历过程中使用 标签判断属性是否为 null。foreach元素会遍历这个列表,将每个对象中的name和age属性作为查询条件的一部分。separator属性指定了在每个查询条件之间使用的分隔符,open和close属性指定了整个条件块的开始和结束符号。其中,(name, age)是一个元组,表示按照name和age两个属性组合成的唯一键来查询。如果你的表中没有这样的唯一键,你需要使用其他条件来替代。

2023-06-01 19:14:55 1858

原创 【java 多线程实现pdf打包成zip下载】

最近一个需求是需要在某个逻辑中处理2000多条数据,并且生成pdf打包成zip进行下载,之前是量不多,是同步for循环进行生成pdf然后打包下载,目前由于要与web端进行交互,下载完将zip流返回给前端,所以必须要优化速度。

2023-05-24 21:48:49 431

原创 @Retryable和@Recover的使用踩坑记录

最开始的时候没有触发到托底操作,也就是@Recover方法的一直没有被执行,后面发现几次系统中的全局捕捉异常会抓到系统异常,由于日志加的不全,没有怀疑是托底操作的原因,后面发现是由于@Recover修饰的方法的返回值类型与@Retryable修饰方法的返回值类型不一致导致。在项目中有调用第三方公司数据接口,因为调用该接口的时候存在不稳定因素,比如网络波动、接口数据返回超时等等,代码中做了重试策略,采用了@Retryable和@Recover组合的方式进行处理。

2023-04-26 18:46:15 747

原创 【excel导入/excel前端预览/pdf下载/zip文件下载/】

对于多级表头的需求,可以通过@Group注解进行处理,之前4.0.0版本存在@Group分组失败的问题,版本提升到4.3.0解决。通过new ZipOutputStream(自定义的输出流) ,通过putNextEntry()方法组装,最终写入流。-element-xlsx在线读取Excel数据预览。建议使用easyPoi,但是开源框架存在更新迭代,

2023-04-11 19:25:49 97

原创 java-mybatis理解

mybatis源码学习

2023-01-04 15:05:56 97

原创 【微信小程序】-授权获取微信绑定手机号两种方案

最近在做小程序的时候要求自动获取微信绑定手机号,本来以为很简单和获取定位一样直接使用微信api,后期使用中发现需要与后台进行交互,整理以下两种方案。前端获取手机号api的code,带着accessToken去调用最新的api接口去获取手机号,无需解密。前端获取参数,后端解密,注意这种方案需要的code是wx.login的获取的code。...

2022-08-09 09:12:12 4219

原创 Java-请求参数格式验证常用表达式-更新中

时间格式:1.格式为20211223140517 @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[246

2021-12-23 16:20:32 370

原创 java使用 Socket 作为客户端连接网络键盘 实操

项目情境: 有一个第三方的网络键盘(键盘按键连接后会发送指令)配置到项目上,实现键盘按键,发送的指令经服务层接收封装后发送给各个业务线,实现键盘的交互。解决思路: 因为交互是持久的,键盘操作命令是断断续续的,所以采用socket的长链接模式,与以往不同,此次java服务层作为socket的客户端主动去连接键盘,并与键盘实现心跳连接,接收发命令,根据键盘配置的手册,实现整个交互。编码示例:1.连接服务线程package com.jovision.mix.keyboard.service.

2021-12-01 11:06:11 663

原创 java-@WebFillter注解使用问题

如果添加了@Component或@Configuration,又添加了@WebFilter(),那么会初始化两次Filter,并且会过滤所有路径+自己指定的路径 ,便会出现对没有指定的URL也会进行过滤

2021-10-12 10:20:43 155

原创 Java-无法找到jar包内文件报错 本地idea调试没问题 服务器报错

问题情景:ideajar包内放入json文件,本地读取没有问题,部署到服务器后报找不到文件的错误。解决方案:ClassPathResource resource = new ClassPathResource(path);File flowFile = resource.getFile();使用以上方式读取resource下的文件,IDEA本地测试ok的,但是打成jar包后扔到linux就读不到了,因为打成jar包后,文件在jar里面,resource.getFile()不会读取jar的压缩包,导

2021-09-28 10:13:08 594

原创 Java---@WebFilter中urlPatterns失效

问题描述:在项目中针对某个接口请求进行特殊处理,通过过滤器的方式进行开发,当部署后发现一些本不该过滤的请求过滤了,但是urlPatterns中未添加相关url。@Slf4j@Component@WebFilter(urlPatterns = { OpenConstant.OPEN_PATH + "/alarm_report/*"})解决方案:去掉@Component注解 在启动类中增加@ServletComponentScan参考文章:https://blog.csdn

2021-09-08 14:55:26 1430

原创 idea打包项目-maven依赖红波浪线-jar本地仓库已有的情况打包报错

问题:maven项目打包时报错找不到某个jar包,代码中编译没有问题,类方法等可以正常使用,idea右侧的maven查看该jar包红波浪线,尝试过删除本地jar重新引入,maven clean等操作,扔未解决。原因:由于是微服务的其他项目B引入该jar包,该jar包在其他项目配置了远程私库,引入该jar到本地仓库,出问题的项目A由于没有配置私库地址,本地编译使用的是本地仓库提供的jar,导致打包时打包失败。配置私库地址后问题解决。(最开始一直没往这方面想导致浪费了很多时间)...

2021-09-02 09:24:24 257

原创 MySQL之group by 版本使用区别

1.MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态。2.ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在此模式下,target list中的值要么是来自于聚合函数(sum、avg、max等)的结果,要么是来自于group by list中的表达式的值3.MySQL提供了any_value()函数来抑制ONLY_FULL_GROUP_BY值被拒绝4.any_value()会

2021-08-24 11:48:26 529 1

原创 AOP-对切点请求参数对象的属性处理

问题情境:在web系统对应的后台查询方法中,有一些鉴权问题的处理,每次都要根据当前登陆用户来获取权限对应的数据库字段,每次都要写一堆代码,感觉封装的话每次的使用的参数也不太一致,于是想到用aop的形式进行处理,主要对切面方法的请求参数进行处理。解决方案:代码如下:@Before(value = "pointCut()") public void queryAreaIds(JoinPoint joinPoint) { Object param = joinPoint.getAr

2021-04-29 16:12:43 990

原创 Mybatis-plus 枚举使用报null问题

在使用mybaits-plus 对字典项数据进行处理时,使用到了枚举类的方式,使用时出现null问题。枚举类下图所示:@Getterpublic enum GoodsFlagEnum implements IEnum { DOWN(0, "下架"), UP(1, "上架"), ; private final Integer value; private final String desc; GoodsFlagEnum(Integer value,

2021-04-09 17:06:42 1257

原创 java问题处理---若依框架下对某个url权限放开,登陆后访问403 Forbidden

问题情景:在若依框架下搭建了一套前后端代码,对某个url放开权限,后端SecurityConfig进行如下配置但当登陆系统后,请求放开权限的url,403报错。解决方案:参考:https://gitee.com/y_project/RuoYi-Vue/issues/I1N6Y8在前端请求设置headerheaders: { isToken: false },问题解决。...

2021-04-02 11:08:34 5367

原创 java String字符串每隔两位截取后进行处理

代码示例:public enum ThroughWayTypeEunm { IN_FACE(1,"刷脸") , IN_QR(2,"扫码") , IN_CARD(3,"刷卡"), IN_FINGERPRINT(4,"指纹"), IN_IDCARD(5,"身份证"), IN_HEALTHCODE(6,"健康码"), IN_FACT_TMP(7,"人脸测温"),; private int value; private String t

2021-03-17 13:59:38 2090

原创 idea好用的注释模板(亲测param可以获取)

模板设置:** * 功能描述 * @author sww * @date $date$ $time$$params$ * @return $return$ */param配置:groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+='

2021-02-25 11:02:52 310

原创 Maven:父子模块项目,子模块配置不引用父模块某个依赖

问题发生情景:由于项目原因,微服务项目下,某个模块的代码是单独部署启动的,有些依赖引用父模块的依赖,但是不引用Eureka模块的依赖,没有对其配置之前,出现下图所示错误。报错:DiscoveryClient_UNKNOWN/192.168.86.108:8202 - was unable to send heartbeat!通过设置子模块不在引用父模块的eureka依赖解决该问题。子类重写,定义scope为test,打包则不会出现,亲测可用参考以下文章:https://www.oschi

2021-02-20 11:57:55 3389 1

原创 Mybatis的xml文件中,一个方法中包含多条sql语句报错

报错如下:Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delete from Table where face_det_time <= DATE_SUB(CURDATE(), IN' a

2021-01-29 10:30:47 505

原创 前端传递数组,mybatis 遍历后根据数组中的内容进行条件判断

前端传递数组,mybatis 遍历后根据数组中的内容进行条件判断sql如下:SELECT * FROM t_frs_contrast_record WHERE 1 = 1 AND ( t_frs_contrast_record.user_id IS NULL OR EXISTS ( SELECT id FROM t_frs_user tfu WHERE tfu.validity_type = '0' AND t_frs_contrast_record.user_id = tfu.id

2021-01-07 13:39:19 774

原创 Token高并发解决方案

Token高并发解决方案一:作为token使用的第三方 客户端模式使用token可以采用单例模式或定义一个全局变量isRefresh 标志,加同步锁Synchronized来保证token过期的那个时间点,刷新token方法只被调用一次。二:作为token服务器端:后端方案:利用 Redis 缓存当同时发起多个请求时,第一个接口刷新了 Token,后面的请求仍然能通过请求,且不造成 Token 重复刷新。那么,后端在用户第一次登录时,需要将生成的 Token 数据(token 和 createTi

2021-01-05 15:57:48 2226 1

原创 Restful请求之@PutMapping使用总结

接收方法中的注解常见注解:@PathVariable(路径变量)注解的使用带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义。@PathVariable(“xxx”)通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)@RequestMapping(value=”user/{id}/{name}”)请求路径:http://localh

2020-11-26 14:56:08 46410 6

原创 base64图片转换工具类以及base转图片工具

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import org.apache.commons.codec.binary.Base64;/** * 将图片转换为Base64<br> * 将base64编码字符串解码成img图片 *

2020-11-20 16:53:44 1359

转载 idea连接数据库 The specified database user/password combination is rejected: com.mysql.cj报错

报错如下图:解决方法:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC转载自:https://blog.csdn.net/weixin_39938635/article/details/90212775..

2020-11-10 09:15:06 12269

原创 VUE-前端-JS对象数组根据某个属性字段去重

var arr = [{ key: '01', value: '乐乐' }, { key: '02', value: '博博' }, { key: '03', value: '淘淘' },{ key: '04', value: '哈哈' },{ key: '01', value: '乐乐' }]; // 方法1:利用对象访问属性的方法,判断对象中是

2020-11-07 10:52:22 2841

原创 VUE-两层for循环 外层长度会变化时,外层i--

for (let i =this.dataForm.roleList.length-1; i>=0; i--) { let obj = this.dataForm.roleList[i] let deptTabId = obj.id debugger if (obj.type === '组织') { if (common.commonDeptRoles.length < 1) { thi

2020-11-04 20:36:07 201

原创 通过web.client.RestTemplate在java后端代码中发送https请求

import org.springframework.web.client.RestTemplate;一.在外层定义token和urlprivate String token = “token值”;private String URL = “xxxxxxxxx”;二.方法体如下: public boolean lossReportCard(String workId, String cardNum) { Integer code;

2020-09-28 10:39:37 264

原创 Mysql模糊查询防止sql注入

使用concat配合escape 防止sql注入escape意思就是说/之后的_不作为通配符<if test="params.jobName != null and params.jobName !='' and params.jobName !='空'.toString()"> and r1.jobName like CONCAT('%',#{params.jobName},'%') escape '#'</if>...

2020-09-23 17:49:05 1057

原创 MySQL中group_concat()函数的排序方法

行转列:GROUP_CONCAT(spec_id ORDER BY spec_id SEPARATOR ‘,’)ORDER BY :排序SEPARATOR : 分隔关键字CONCAT():字段拼接字符SELECT type_id,CONCAT(’[’,GROUP_CONCAT(spec_id ORDER BY spec_id SEPARATOR ‘,’),’]’) AS spec_idsFROM (SELECT spec_id, type_idFROM goods_type_specWH

2020-09-23 11:37:19 321

原创 Oracle复制一份数据库到本地

问题情境:需要将服务器上的数据库导一份到本地数据库,想到的处理方案有两种,方案一:导出一份sql脚本,在本地执行(无奈navcat和plsql等工具使用起来遇到了各种各样的问题,遂采用方案二)方案二:服务器为linux数据库:imp 账号/密码@ip:11521/orcl full=y file= E:\20200508qys.dmp ignore=yexp 账号/密码@ip:11521/orcl file= E:\20200722qys.dmp owner=qys...

2020-07-28 14:55:45 447

原创 java后端代码模拟前端发送websocket请求

怎么调用websocket作为通道发送数据1.现有多个线程查询不同的设备获取不同的数据。2.当网页打开后自动产生一个websocket连接。上面12两点已经完成,但是现在对我来说查询线程和websocket它们相互独立,怎么才能在查询线程中调用websocket的send方法把数据传到前台网页呢。解决方案:package com.quantfn.strategy.atrfuture.test;import org.java_websocket.client.WebSocketClient;i

2020-07-28 14:51:06 6264 1

原创 jdk8 stream的分组功能list.stream().collect(Collectors.groupingBy(对象Vo::分组标志字段))

list.stream().collect(Collectors.groupingBy(对象Vo::分组标志字段));业务场景:表结构大概这个样子:前端返回样式{1:[{ key:value,key:value,…},{ key:value,key:value,…},…],2:[{ key:value,key:value,…},{ key:value,key:value,…},…],}SQL 写起来的话 group by 自己经验还不太够,就想着如何

2020-06-22 15:57:01 17978 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除