![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
sinat_36483049
路漫漫其修远兮,吾将上下而求索
展开
-
springboot+openoffice实现文件在线预览
好久没写博客了,还是得动起来最近项目有一个需求需要实现文件在线浏览,网上方案有很多,常见的有使用pdf.js,后面加文件路径,但仅限于pdf文件,还有就是使用openoffice把文件转换为pdf再去浏览,综合考虑,决定还是openoffice,下面实战一、安装openoffice首先当然是安装openoffice,官网下载地址: 传送门.window下和linux下安装都有教程,window直接下一步,下一步,linux可以参考大佬博客传送门.二、项目文章最后有完整项目源码地址,我上传的,不要原创 2021-09-02 17:50:40 · 736 阅读 · 2 评论 -
JAVA判断两个日期之间的大小(以及当前时间加减分钟或小时)
在项目中常用的方法,比较两个日期的大小,当前时间或指定时间加减几个小时或分钟public static void main(String[] args) throws ParseException { //判断两个日期的大小 Date date1 = new Date(); Date date2 = new Date(); System.out.println("1:"+date1.before(date2)); System.out.println("1:"+date1.after(原创 2021-06-07 14:33:36 · 2820 阅读 · 0 评论 -
java打印菱形【JDK1.8】
jdk1.8打印菱形菱形打印好久没写博客了,最近群里讨论盲写个打印,我一看这不是老久之前的题吗,要不试一点新东西,搞个jdk1.8的版本打印看看。上代码public static void main(String[] args) { String str = "**********"; String spe = " "; List<Integer> a = Arrays.asList(new Integer[] { 1, 2, 3, 4, 5 }); List<原创 2021-04-24 18:05:30 · 104 阅读 · 0 评论 -
解决java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature问题
解决AbstractMethodError问题最近开发项目时需要嵌入一个公司的应用JAR包,结果一加到项目中就会报错Caused by: java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:234)原创 2021-02-24 10:21:13 · 9615 阅读 · 4 评论 -
JAVA多线程之优先级设置
JAVA多线程之设置线程的优先级线程特性setPriority()方法线程特性在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源要多一些,也就是CPU优先执行优先级较高的线程对象中的任务,其实就是让高优先级的线程获得更多的CPU时间片,但只是高优先级的线程获取资源的概率会大一点,并不一定保证一定就最先执行,这个取决于CPUsetPriority()方法此方法在JDK中的源码如下/** * Changes the priority of this thread.原创 2021-02-05 10:56:11 · 435 阅读 · 0 评论 -
JDBC中createStatement加参数和不加参数效率问题
JDBC中使用createStatement加参数或不参数?参数定义我们都知道使用jdbc直连数据库可以执行简单的sql语句,并返回结果集ResultSet,我们在创建Statement通常默认是不加参数的,其实如果我们不加参数默认参数是这样的createStatement()等同于--》createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)第一个参数[ResultSet.]【TYPE_FORWARD_原创 2021-02-03 17:04:15 · 363 阅读 · 0 评论 -
解决file.delete老是失败的问题,批量删除文件夹下的文件
file.remove有时会失败,解决解决file.delete失败问题最近在项目中遇到是要FIle的delete方法后,文件一直删除不了,经排查,是当时刚好有文件处于读取状态(可能是文件夹里面直接读取或是java程序后台读取使用InputStreamReader或BufferedOutputStream这种流没有关闭)解决:在调用这个delete之前使用system.gc()使用java垃圾回收,通知虚拟机希望进行一次垃圾回收,注意:这里并不一定会马上执行垃圾回收,至于什么时候进行回收还是取决于虚拟原创 2021-02-02 16:56:48 · 1196 阅读 · 1 评论 -
线程中yield的方法
线程中yield的方法线程中yield的解释是”yield()方法的作用是放弃当前的CPU资源,让其他任务去占用CUP执行时间,放弃的时间不确定,又可能是刚刚放弃,马上获取CUP时间片“,这个方法很像sleep,那么yield和sleep的区别sleep() 方法给其他线程运行机会时不考虑线程的优先级;yield() 方法只会给相同优先级或更高优先级的线程运行的机会线程执行 sleep() 方法后进入阻塞状态;线程执行 yield() 方法转入就绪状态,可能马上又得得到执行sleep() 方法声明原创 2021-01-12 09:38:16 · 3269 阅读 · 0 评论 -
springboot项目前后端一体和前后端分离的整合xxl-sso实现单点登陆
首先感谢xxl-sso开源项目,传送门 xxl-soo官网.整合xxl-ssospringboot项目集成xxl-sso前后端一体的项目集成xxl-ssoxxl-sso前后端分离集成xxl-ssospringboot项目集成xxl-sso前言:由于我们公司项目比较多,登陆基本上都是工号加密码,所以想做一个单点系统,登陆A系统之后就可以直接进入其他任意相关系统无需登陆,一个系统退出,所有系统退出,这里找了很多资料和博客,最终选择xxl-sso做集成大家把项目下载下来后更xxl-sso-server中的原创 2020-11-24 11:17:00 · 2312 阅读 · 3 评论 -
JAVA中监控一个方法的执行时间,超时了做处理
最近开发项目遇到一个需求,需要对一个sql进行监控,超时10分钟需要预警发送邮件提醒,刚开始考虑是做sql监控,但这个超时了还需要继续执行,不能停下来,而且做sql监控我只能知道这个sql执行了多久,这个是在执行完毕以后才可以知道总时长的,那怎么去知道这个sql执行有没有超过10分钟呢?这里我提供一种思路是从java层面去监控这个方法执行时间是否超过10分钟,如果大家有更好的方法可以在评论区评论解析:这里采用FutureTask开启一个线程调用jdbc执行方法,主方法在10分钟后进行查询是否完成,根据i原创 2020-11-13 16:08:09 · 4063 阅读 · 0 评论 -
解决Springboot+mybtaisplus+acticiti6.0版本冲突
Springboot2.0+mybtaisplus3.3.1+acticiti6.0版本冲突今天在搭建系统框架时想把activiti整合到项目里面,使用的是activiti6.0,pom文件加入依赖,更新maven <!--activiti--> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine&原创 2020-09-09 16:05:16 · 283 阅读 · 0 评论 -
解决:Mybatis-plus中的BaseMapper中的insert方法报错
Mybatis-plus中的BaseMapper中的insert方法报错报错如下Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.ClassCastException: com.xxxx.xxx.xx.Entity cannot be cast to com..xxxx.xxx.xx.Entity### Cause: java.lan原创 2020-08-27 17:07:47 · 7799 阅读 · 0 评论 -
Java中使用Excel的vlookup函数
工作需要有一个需求需要对比两个表格的数据,在外面可以直接用vlookup函数实现,后面想用代码去做,刚开始用apache的poi读取,两个Excel表格俩个循环去判断,后面发现太慢了去找了一下,网上也没啥好的dome,自己慢慢试了一套,奉上代码,可以参考一下:// An highlighted block OutputStream out = null ; BufferedInputStream is = new BufferedInputStream(new FileInputStream(ne原创 2020-05-21 18:56:54 · 2782 阅读 · 0 评论 -
Windows和Linux生成文件分割符问题
项目开发遇到的一个小问题记录一下,关于java自动创建文件夹,Windows可以正常创建,Linux下会报错:No such file or diretory原因是因为Windows下目录格式是以“/”为分隔符,而linux下为""为分隔符这时候可以采用public static final String separator = File.separator;这里的separator 会根据不同平台映射不同的值,windows下为”/“,linux下为”\“...原创 2020-05-21 16:13:25 · 216 阅读 · 0 评论