- 博客(36)
- 问答 (3)
- 收藏
- 关注
原创 前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!
最近有一个需求,就是用户可以任意导入一个自定义的excel文件,让用户可以自己选择,组装表头的对应关系,这样做的目的是为了解决模板的局限性,更加的灵活的导入data() {return {page: {},list: [],total: 0,users: [],title: '编号',},title: '交易日期',},title: '付款人',},title: '付款人账号',},// {// title: '收款人',// },// {
2023-11-10 00:34:29 1244
原创 前端使用C-lodop 实现循环套打小案例
lodop是一个很优秀打印插件,具体的大家可以官网了解,先在官网下载插件,安装在本地,并启动,点击官网下载。
2023-11-09 23:41:06 1105
原创 Easypoi map方式导入数据 ,List<Map<String, String>> 日期项数据为空(null)解决办法
目录前言解决办法前言在使用easypoi map的方式解析excel文件,若文件中的某列数据格式是日期类型,那么它这个工具是读取不到,因为它的源码读取到某列为日期格式,数据必须为字符串类型,它才会处理switch (cell.getCellType()) { case STRING: result = cell.getRichStringCellValue() == null ? ""
2023-11-09 23:25:31 1837
原创 vue 子页面通过暴露属性,实现主页面的某事件的触发
需求:当我在子页面定义了一个定时器,点击获取验证码,计时器开始倒计时,在这个定时器没有走完,退出关闭子页面,再次进入子页面,定时器此时会被刷新,但是我的需求是,再次进去子页面时,只要上次的计时器没有走完,就继续走,那么,这时候就可以通过暴露属性事件,去触发主页面的事件具体思路:在主页面定义也定义一个处理的定时器的事件,当在子页面点击获取验证码,开始倒计时,同时调用这个暴露的事件,
2023-11-09 22:55:28 466
原创 springboot启动报错:nested exception is java.lang.IllegalStateException:
springboot启动报错:nested exception is java.lang.IllegalStateException: Failed to introspect annotated methods on class org.springframework.boot.web.servlet.support.SpringBootServletInitializer。至于原因是什么,我也不太清楚,有哪位大兄Dei可以解释下吗?
2023-04-25 22:40:41 2613
原创 gradle编译项目报错Execution failed for task ‘:bootJar‘,‘:mainClass‘,‘:compileJava‘.
idea导入Gradle管理的SpeingBoot多模块项目,依赖下载不下来,执行编译报错。更换另一种申明方式:buildscript。gradle配置参考。
2023-04-09 15:05:24 3596
原创 Java自定义定时任务
最近看到项目中的定时任务感觉还是很有意思的,就简单的记录一下,我们开发中会遇到多模块的定时任务,但是这些定时任务都有着相似的逻辑,大量的定时任务都要去写这些相似的逻辑,就降低了代码的解耦性,那我们可以把这些相似的逻辑提取出来,抽成一个抽象类,其他的类只需要去继承这个抽象类,无需再去写那些重复的逻辑,只需关注具体的业务实现,当然这些事Java, Spring ,Quartz,XXL-Job等都帮我们设计好了,我们也可以自己搞来玩玩!
2023-03-25 00:19:41 774
原创 JAVA浅谈Pair抽象类
Pair类中 getLeft()和getRight()方法是子类去实现的,父类默认采用的是ImmutablePair子类,Pair还实现了Entry,可以使用getKey()和getValue(),其实它们都是调用了getLeft()和getRight()方法,继承了Comparable,可以比较两个Pair。Pair抽象类,不能被直接实例化,可以通过Pair.of(L,R)实例化,提供了getLeft()和getRight()方法。vavr库,支持Tuple1到Tuple8,八个元组。
2023-03-23 22:33:02 638
原创 Mybatis-Plus 代码生成器,自定义模板Demo,快速搭建!!
Mybatis-Plus 代码生成器,自定义模板Demo,快速搭建!!
2022-11-05 22:56:23 4767 2
原创 02326-操作系统,04741-计算机网络原理,02325-计算机系统结构真题相关知识点
02326-操作系统真题相关知识点02325-计算机系统结构真题相关知识点04741-计算机网络原理真题相关知识点
2022-08-27 22:20:14 891
原创 自考-02326操作系统(2017版)课后习题答案
第一章操作系统概论1.什么是操作系统?请说明操作系统在计算机系统中的作用和地位。操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合,他们能够有效地组织和管理计算机中的硬件和软件资源,合理地控制计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使用户能够灵活、方便、有效的使用计算机,并使整个计算机系统能高效运行。2.操作系统管理计算机系统的哪些资源?硬件和软件资源。3.请从资源管理角度说明操作系统的主要功能。进程管理(处理器管理)、存储管理、文件管理、作业管理、设备管理4.操作系统
2022-08-27 22:00:36 4045
原创 SQL小练手,孰能生巧!
思路:将各个公司下对应车辆类型的驾驶员选择的行为总数查询出来,再除以对应公司下所有驾驶员即可得到比例(使用了个嵌套查询,内层为数据源,外层进行一个分组及每组的总数)思路:先从主表中获取数据,在嵌套一个子查询,根据主表的ID去查询子表数据,再对他们进行一个求和;查询:10次行程有效距离,以及各行为次数(在详情中,有个状态字段区别)需求:可以查询用户所选择的行为次数及比例;6.获取最近 10次 个人的类型数据。...
2022-08-16 16:58:07 181
原创 查询用户学习课程情况
思路:先从t_sys_user 用户基础信息表中 获取对应的车辆类型,每个车辆类型绑定了所需要学习的课程,t_course_user 用户学习记录表 记录了用户学习的课程以及学习课程的状态,那就可以获取到学习了的课程数量,实现:这里采用的是直接一步到位,通过一个嵌套SQL把数据查询出来,当然也可以不用SQL,通过它们的关联关系用MyBatis-Plus类库的方法查询出来,但是过程就要复杂的多;需求:查询用户的学习的情况,应该学习的课程数量,实际学习了课程的数量;...............
2022-08-16 15:10:09 331
原创 com.fasterxml.jackson.annotation.JsonFormat 自定义时间格式失效
com.fasterxml.jackson.annotation.JsonFormat 自定义时间格式失效!!!问题:在请求三方接口,一直请求失败,查看日志调试来看,原来是请求的日期参数不对,但是我传递的格式都是按照接口文档来传递的,百思不得其解,经过查阅资料,发现是JsonFormat 自定义时间格式失效了!原因:因为我直接把参数塞到了 JSONObject 里,编译的时候会反序列化,导致了JsonFormat 失效,换成ObjectMapper,然后再传化一下String,JsonFormat 自定
2022-02-17 00:36:00 1627
原创 BUG:Mybatisplus实现MetaObjectHandler接口自动更新或者添加时,insertFill()和 updateFill()失效的问题
BUG:Mybatisplus实现MetaObjectHandler接口自动更新或者添加时,insertFill()和 updateFill()失效的问题!! 概述:Mybatisplus中MetaObjectHandler中有是监控添加或者修改的方法,可以在系统中根据修改,或者添加时做业务操作,比如要在更新时清除特定的缓存,如果在更新的方法中使用条件构造器就会造成自动更新的方法失效,从而不会进入这个方法;解决:不用条件构造器,使用实体类的方式去更新 注意:Mybatisplus会忽略空值的判断
2021-12-13 06:55:39 3823
原创 Java50道常见面试题,不容错过,一键收藏吧!!!
1. int 和 Integer的区别有哪些?运用场景?1、int属于基本数据类型,Integer属于int对应的包装类。2、既然是类,就需要实例化才可以使用,而基本数据变量不需要。3、Integer的默认值是null,而int的默认值是01、为什么java会保留基本数据类型?对于java来说,常说“一切皆对象”,那为啥java还有基本数据类型,对此需要明白,基本数据类型和对象类型的区别1、基本数据类型基本数据类型存在的是:值,基本数据类型在内存中存放的位置是栈。(声明在方法中的局部变量,基本
2021-10-14 22:46:14 406 2
原创 Java 中 线程A B C 三个线程如何让其执行顺序为C-B-A
Java 中 线程A B C 三个线程如何让其执行顺序为C-B-A由于存在CPU调度的不确定性,所以多线程的执行顺序具有不确定性。主线程有可能比其他线程先执行完,其他线程也有可能比主线程执行完,其他线程之间执行顺序也可能不同 ,那么想让线程顺序执行,那就要用特定的方法来搞定!· [1] 使用线程的join方法· [2] 使用主线程的join方法· [3] 使用线程的wait方法· [4] 使用线程的线程池方法· [5] 使用线程的Condition(条件变量)方法· [6] 使用线程的Coun
2021-10-14 00:54:16 967
原创 面试考点:Java极简堆栈内存溢出案例!!!
一 堆内存溢出 堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾收集回收机制清除这些对象,当这些对象所占空间超过最大堆容量时,就会产生OutOfMemoryError的异常;* 运行时,不断在堆中创建Heap类的实例对象,且while执行结束之前,GC Roots(代码中的list)到对象(每一个Heap对象)之间有可达路径,垃圾收集器就无法回收它们,最终导致内存溢出。*/public class TestHeapException {
2021-10-09 00:28:09 319
原创 Java获取Tree方法!
获取Tree方法!生活中能见到各式各样的树,但是树都是由主树干,分支构成,而我们的Java中的tree也是一样;通常我们会在一张表中设置一个parentId(唯一) 来定义父类;那我们就讨论下获取tree的方式方式一:通过父级找子级eg:查询部门列表1 可以根据pid获取到一级二级(父级对子级都是一对多的关系);2 循环遍历一级部门;3 获取二级部门,判断二级部门是否为空,为空就将二级部门设置为null,4二级不为空就循环二级查三级(依此递归查询)注:查询的那个实体里要加入一个Listch
2021-09-12 20:45:17 1099 2
原创 Java 操作RocketMQ简单Demo,顺序与事务案例,不容错过!
Java 操作RocketMQ简单Demo,顺序与事务案例,不容错过!前言:MQ的概述与认识这里就暂时不赘述,以及RocketMQ,想了解这方面的知识点,可以推荐伙伴们看 “ 墨家巨子@俏如来 ”大佬写的文章注:- - 启动Broker时,需要指定可以支持自动创建主题(start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true),如果出现闪退的情况,可以把 MQ文件夹\bin’下,Bean目录下的runbroker.cmd 中JVM占用
2021-09-05 15:45:19 1272
原创 错误:org.apache.jasper.JasperException 无法为JSP编译类
错误:org.apache.jasper.JasperException: 无法为JSP编译类:16-Jun-2021 13:37:25.241 严重 [http-nio-8080-exec-4] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet[jsp]的Servlet.service()抛出异常 org.apache.jasper.JasperException: 无法为JSP编译类: 在生成的java文件中的第:[156
2021-06-16 14:45:37 17567 8
原创 错误:Attempted read from closed stream尝试读取关闭的流!!!
错误:Attempted read from closed stream尝试读取关闭的流!!!原因:一个HttpClient里只能有一次获取Entity的操作,不能有多次获取Entity的操作,getEntity()获取的流是一次性的,用了一次就会自动关闭,第二次调用的时候就是调一个关闭的流,就会抛出:Attempted read from closed stream;解决办法:如果一个方法只对同一个Entity操作,可以用BufferedHttpEntity,可以多次读取流!HttpEntity
2021-06-07 17:00:54 11729
原创 冒泡排序与二分查找算法案例,值得学习哦!
冒泡排序与二分查找算法案例,值得学习哦!本案例仅供Java学习,大神勿喷!!!冒泡排序案例public class BubbleSortTest { public static void main(String[] args) { /*冒泡排序:两两之间进行比较选出最大, 选出的最大值不参与下一轮的比较,最后一个只与前一个比较 length-1*/ //定义一个数组 int arr[]={1,33,54,67,8,34};
2021-04-24 23:28:15 401 2
原创 面试:冒泡排序# 编程:2,3,4,5,3,1,2,5,6,统计每个数字出现的次数?
冒泡排序: 思路:两两之间进行比较,前者比后者大,就进行位置的交换,一次进行比较,选出一个最大值,排在末尾;选出一个之后,选出的最大值不参与下一轮的比较;public class BubbleSort{ /* 两两之间进行比较,前者比后者大,就进行位置的交换, 一次进行比较,选出一个最大值,排在末尾; 选出一个之后,选出的最大值不参与下一轮的比较 */ public static void main(String[] args) {
2021-03-19 21:56:06 316
原创 验证码案例
验证码案例一 思路①:随机生成验证码(4位);②:设置验证码的存活时间;③:区分验证码;简单来说: 一般来说,验证码的长度就设置为4位即可,设置验证码的有效时间为5分钟;如果t是在一分钟以内,提示用户不能重复获取验证码;如果t是大于一分钟,小于五分钟,可以重复获取验证码,但是默认使用第一次发送的验证码;如果t是大于了五分钟,再重新发送新的验证码;注意: 需要设置生成验证码时的生成时间; t=当前时间-生成验证码的时间二 代码AjaxResult工具im
2021-02-27 23:18:31 452
原创 AuthorizationServer:授权服务配置
AuthorizationServer:授权服务配置一、授权服务配置类:AuthorizationServerConfigurerAdapter– SpringSecurityOauth2提供了AuthorizationServerConfigurerAdapter适配器类来作为认证授权服务的配置,其中有三个方法,– 客户端详情:配置客户端请求的参数;– 授权服务断点:配置授权码和令牌的管理/存储方式;– 授权服务安全配置:配置哪些路径放行(检查token的路径要放行);二、搭建auth2授权服
2021-01-25 00:29:09 2707
原创 security认证流程简单分析
1 简单的认证流程:– 前台填写表单数据,封装成用户对象—》交给认证管理器(相当于loginService)-----通过-》userDetailService获取数据库中的用户和密码—》调用密码器匹配器与表单对象中的用户名和密码进行匹配-》进行认证—》认证成功放行资源,将用户信息,权限封装在SecurityContent里,放到session中–》认证失败拦截到登录页面2Security认证原理– SpringSecurity是基于Filter实现认证和授权,底层通过FilterChainPro
2021-01-22 23:21:35 695
原创 SpringBoot学习,超值入手哦!
前言:以下内容只是本人所学习SpringBoot的冰山一角,如果大家想全面的学习SpringBoot可以到官方网址; 官方网址:https://spring.io/projects/spring-boot一、什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领
2021-01-06 01:22:43 95
原创 错误:ERROR 21236、24180
错误:ERROR 21236、24180错误:ERROR 21236 — [ main] o.s.boot.SpringApplication : Application run failed;ERROR 24180 — [ main] o.s.boot.SpringApplication : Application run failed 给大家分享一个错误操作,看下面代码,这是在写Maooer.xml
2020-12-01 15:54:47 328
原创 案例讲解:有一个字符串,其中包含中文字符、英文字符和数字字符, 请统计和打印出各个字符的个数,并打印最高次数的字符
案例讲解:有一个字符串,其中包含中文字符、英文字符和数字字符, 请统计和打印出各个字符的个数,并打印最高次数的字符解题思路:一:统计和打印出各个字符的个数:思考:统计字符和个数,可以考虑用HashMap集合对其进行操作,以字符串作为键,把出现的次数作为value值,就要考虑怎么将字符串添加到map中; 转成char数组,拿到每一个字符将拿到的字符传给新建的map集合将每个字符做为map 的键值,value值为1判断后续传进来的值是否包含的有,如果有就将键的次数加1二:统计最高
2020-09-24 20:54:01 1395 1
原创 自定义基于数组的容器,可以任意添加多个不同数据(ArrayList底层)
自定义基于数组的容器,可以任意添加多个不同数据(ArrayList底层)import java.util.Arrays;/** *创建一个基于数组的容器,可以放任意多个数据 * 思路: 1 定义一个初始容量 * 为了提高自定义性,可以把初始容量定义为空 * 创建有参构造 提供一个数组长度 然后在无参构造里调用有参构造的方法 * 2向外界提供一个可访问的添加方法 * 3考虑控制索引() * 4此时要进行容量判断 * 当长度等于索引时,就满了 * (如
2020-09-22 00:47:06 286
原创 初学java者编写验证码的方法,值得入手!!!
初学java者编写验证码的方法,值得入手!!!/** *思路: 1 给定一个随机源 * 2 调用方法 *写方法:1 拿到随机源的长度,作为取值范围 * 2 拿到随机源的下标 * 3 再将拿到随机源的下标,转化为具体的char值, * 4 拼接拿到索引的值(就要去new StringBuilder) * 6 返回拼接的值,但是StringBuilder不是String字符串, * 需要toString转化为字符串 */public class TestYanzhengm
2020-09-22 00:35:34 193
原创 怎样使用Scanner(扫描仪),超级详细,不容错过!!!
Scanner 的使用一、放在类声明前,引入扫描仪;import java.util.Scanner;//也可以写成 import java.util.*; Scanner类包含正在util包中;*代表调用util包二、声明一个新的扫描仪(即向内存申请一个空间);Scanner in;三、赋值in=new Scanner(System.in);//out 输出 in 输入//通常把声明和赋值一起//Scanner in=new Scanner(System.in);四、使用扫描
2020-09-02 01:14:39 1727 1
空空如也
vue 调用 window.print 打印 时 <el-table>表格丢失
2023-06-23
字符串转Long,前导零丢失,需要做循环计算,循环里又需要原值?
2023-05-30
阿里 Nacos 怎么获取当前存活的服务列表呢?
2022-06-01
抛Attempted read from closed stream?
2021-06-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人