- 博客(54)
- 收藏
- 关注
原创 关于后端异步+前端进度条的简单实现
举个例子,现在有一个接口,就拿若依的批量给用户授权角色接口来说。原来的接口是这样的直接在前端获取到用户id然后就直接在sysRoleService.insertAuthUsers方法中进行数据库操作了。如果前端用户数据量太大的话,这样返回会很慢,导致前端加载时间长,现在简单的改造这个方法。
2024-02-01 10:43:10
1132
转载 SM3加密算法
sm3用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出的摘要值长度为256bit。
2023-11-09 17:54:56
2713
原创 sm2加密算法
在非对称加密中,加密和解密使用的是不同的密钥对,分别是公钥和私钥。SM2算法是由中国国家密码管理局制定的一种椭圆曲线非对称加密算法,用于数字签名、密钥协商等安全通信场景。这里以国密为例,Hutool针对Bouncy Castle做了简化包装,用于实现国密算法中的SM2、SM3、SM4。Hutool 支持对称加密、非对称加密、摘要加密、消息认证码算法、国密。
2023-11-09 17:09:23
1002
原创 RSA加密的使用(前后端)
公钥(publicKey)加密、私钥(privateKey)解密。不能逆向,私钥(privateKey)加密、公钥(publicKey)解密。说白了就是前后端都需要用公钥(publicKey)进行加密,用私钥(privateKey)进行解密。
2023-11-09 16:36:33
651
原创 导出数据为zip压缩文件,解压后为json文件
但是这样有一个不好的地方,就是前端用户体验感不是很好,需要等待前端一个个文件导出。如果只是导出json文件,不需要压缩包的话。
2023-11-07 11:09:43
463
原创 集成quartz调度框架
quartz定时器是做什么的Quartz是一个任务调度框架,实现动态定时任务实现,比如你想在每天的12点删除一些日志信息等。或者想每隔1小时,备份一些动作片到云盘。搭建框架1. 基础环境配置a. 创建数据库表CREATE TABLE `QRTZ_LOCKS`( `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `LOCK_NAME` varchar(40) CH
2022-01-19 14:51:36
352
原创 当启动项目服务并且登录时报Cannot deserialize instance of `xxx.User` out of START_ARRAY ......
这里表示类型转化异常其实是由于我一开始上传的部署包是错误的 比如我要上传的是2.4 结果上传成了2.2 两个包里面的user对象转化的不一致导致的所以 现在只要清除一下缓存就好了
2021-12-13 17:15:44
1926
原创 查询list集合中的第一条数据 如果没有值的话则返回null
this.list(query).stream().findFirst().orElse(null);
2021-12-08 10:42:24
1780
原创 java中的一些常用的stream流式用法
stream().map().collect()List users = getList(); //从数据库查询的用户集合现在想获取User的身份证号码;在后续的逻辑处理中要用;常用的方法我们大家都知道,用for循环,List idcards=new ArrayList();//定义一个集合来装身份证号码for(int i=0;i<users.size();i++){idcards.add(users.get(i).getIdcard());}这种方法要写好几行代码,有没有简单点的,有
2021-12-08 10:37:42
193
原创 集合和字符串相互转换
//把字符串根据,号分割取出来存入集合List<String> strings = Arrays.asList(user.getChargeOrgIds().split(","));//把集合根据逗号分隔变成字符串String ips = StringUtils.join(systemProperties.getIps().toArray(),",")//把集合中的某个字段取出来并且以,号分割String orgNames = orgs.stream().map(Org::getNam
2021-12-08 10:17:07
913
原创 当有这样一张表,OrgUser表,其中如果知道一个userIdList集合的话,如何获取到相应的OrgIdList
@Override public Map<String, Set<String>> getUserId_OrgIdsMap(Collection<String> userIds) { LambdaQueryWrapper<OrgUser> query = new LambdaQueryWrapper<>(); query.in(CollectionUtils.isNotEmpty(userIds), OrgUser::getUserId.
2021-12-08 10:07:47
263
原创 springboot前后端分离项目如何导出excel数据
首先前端写好点击事件 handleExport() { this.$alert( <div class="el-message-box--custom-body"> <div style="font-size:16px">确认导出所有数据?</div> </div>, "数据导出", { showCancelButton: true,
2021-12-07 17:47:21
1388
原创 关于一次性插入大量数据(几十万)的异步写法
首先情况是这样的 因为我需要一次授权全部的用户 所以当用户量很大的话 前端响应时间会超时 所以这时候就需要异步响应一开始 写controller接口这个authAppUser其实就传一个appId而已 @RequiresPermissions({"authorize/index:foreverAuth"}) @Transactional(rollbackFor = Exception.class) @PostMapping(value = "/saveAllUserAuth")
2021-12-03 16:48:51
788
原创 关于图形验证码在本地启动有效 部署在linux环境时无效
我的原因是由于调用了CaptchaService生成图形验证码,其中因为本地的jdk版本和linux上面安装的版本有一些区别 虽然都是1.8 本地带有的字体样式 linux服务器上面的jdk没有 所以就会造成是图片失效的效果 此时是报后端空指针异常此时需要做的就是在linux中下载字体样式yum install fontconfig //下载字体fc-cache --force //刷新字体缓存然后就可以了...
2021-11-04 17:27:22
1005
2
原创 java 密码复杂度 密码长度最少为8位等等
// 密码长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种 String passwordD = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$"; // 密码长度8-20位且至少包含大写字母、小写字母、数字或特殊符号中的任意三种 String password = "^(?![a-zA-Z]+$)(?![A-.
2021-09-23 14:13:03
1898
原创 MyBatis-Plus使用removeByIds批量删除太慢导致mysql锁定
首先看看是不是因为removeByIds中的beforemove和aftermove有没有被重写,有的话看看 beforemove和aftermove中进行什么操作 导致太慢。如果没有重写的话 一次性删除大量的数据 建议这样做需要自己把集合拆分成较小的集合,可以用guava的List.partition(),然后结合parallelStream()使用,如果删除不完全的话还是建议把parallelStream换成stream 例如: List<List<AuthA.
2021-09-16 14:32:47
6685
原创 数组和List集合相互转换
数组->集合List<String> orgList= new ArrayList<>(Arrays.asList(orgId));集合->数组String[] orgId = orgIdsAll.toArray(new String[orgIdsAll.size()]);
2021-09-16 14:26:54
240
转载 关于公钥和私钥的区别
首先公钥和私钥是俗称的不对称加密方式,也就是非对称加密算法,是对以前的对称加密(使用用户名与密码)方式的提高。当使用非对称加密算法时,会生成两把配对的密钥,其中一把由私人保管,必须非常小心保存,最好加上密码,无需传输,所以称为私钥,私钥主要是用来解密/签章的。另一把对外公布,是给大家用的,本身就无需保密,称为公钥,公钥主要是用来加密/验章用的。当你用了其中一把钥匙加密信息时,只有配对的另一把钥匙才能解密,所以公钥和私钥形成了唯一对应的关系。正是基于这种唯一对应的关系,非对称加密首先可以用来验证信息发送方
2021-09-03 10:52:15
1841
原创 Java--查看某一段代码或方法运行时间的方法
long start=System.currentTimeMillis(); //获取开始时间 //要测试的程序或方法long end=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms");
2021-07-02 14:22:13
850
原创 stream().filter() 过滤对象
使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。//查找身高在1.8米及以上的男生List<StudentInfo> boys = studentList.stream().filter(s->s.getGender() && s.getHeight() >= 1.8).collect(Collectors.toList());...
2021-05-08 09:41:22
3289
原创 把字符串根据,号分割取出来存入集合
List<String> strings = Arrays.asList(user.getChargeOrgIds().split(","));
2021-05-08 09:38:53
1461
原创 把一个对象list集合中的某个属性单独取出来存入list集合
eg:取出OrgStripe中的orgId//查询出条线机构关联数据List<OrgStripe> byStripeId = orgStripeService.findByStripeId(stripe.getId());if (CollectionUtils.isNotEmpty(byStripeId)){ //得到所有与该条线相关的机构id List<String> orgIds = byStripeId.stream().map(OrgStripe:
2021-05-08 09:37:10
2190
1
原创 redis定时过期,清除
我这里用的是redisTemplate控制的redis可以发现他的put方法 除了key和value 还会放一个参数进去,就是他的失效时间 redisTemplate.opsForValue().set(key, value, seconds, TimeUnit.SECONDS);只要往redis存值的时候,(指定当天失效时间 - System.currentTimeMillis() )/1000就会得到具体秒数下面这个类用来获取指定时间的毫秒数// An highlighted block
2021-03-05 10:20:36
798
1
原创 Hutool工具类的使用
Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有。本文将对Hutool中的常用工具类和方法进行介绍。安装maven项目在pom.xml添加以下依赖即可:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <v
2021-03-05 10:14:44
1597
2
转载 springboot项目中的密码加密
关于springboot项目中的密码加密1、编写MD5加密工具类加密过程需要对密码加盐,否则可以通过网络工具轻易解密出密码package com.learn.mall.util;import com.learn.mall.common.Constant;import org.apache.tomcat.util.codec.binary.Base64;import java.security.MessageDigest;import java.security.NoSuchAlgo
2021-03-05 09:34:51
505
1
原创 宝塔部署前后端分离项目
记录一次项目部署经历前端方面 我是vue做的然后npm run build 打包成dist包然后复制下面的所有文件 复制到nginx下面的html目录下因为我是用宝塔下载的nginx 所以nginx目录在www/server下面然后配置nginx.conf/www/server/nginx/conf现在你可以用ip地址加上80去访问前端界面了至此前端部署完毕后端方面先弄数据库还是一样 在宝塔面板中新建一个数据库然后把springboot打包成jar包修改applicat
2021-02-11 13:30:15
5078
3
原创 新建一个spring boot项目
Spring Boot 入门文章目录环境配置maven设置idea设置创建一个springboot HelloWorldpom文件主程序类/主入口类快速创建hello worldmaven设置其中 在maven文件夹下的conf中的setting中的profiles中写入这样一串代码jdk-1.8true1.8<maven.compiler.source>1.8</maven.compiler.source><m
2020-07-24 14:33:47
95
原创 web前端大作业
要求首先创建文件(根据我上次写的方法)https://blog.csdn.net/qq_43586088/article/details/106039397安装vant与配置配置vant在babel.config.js中加入一下代码在main.js中引入到时候要用的布局组件首先写一个头部接下来是轮播图接下来是九宫图...
2020-05-26 20:38:45
2906
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人