- 博客(32)
- 收藏
- 关注
原创 spire.doc.free将word中占位符替换为pdf文件,以及合并PDF
【代码】spire.doc.free将word中占位符替换为pdf文件,以及合并PDF。
2026-09-04 16:22:28
68
原创 idea、maven问题
maven代理:在公司内网当你直接访问阿里云仓库是不行的,配置代理后,会代理到proxy.host.com地址,它帮你访问阿里云就可以下载了。work offline意思是maven离线工作,下载依赖可能下载不全,不要勾选。热部署:本来是ctrl+f9手动加载,但是你可以勾选下面的就会自动加载。热部署:本来是ctrl+f9手动加载,但是你可以勾选下面的就会自动加载。电脑内存16GB太小,启动项目会内存溢出,调节它就能启动。当maven有问题可以尝试清理缓存。新拉取的项目配置sdk和语言级别。
2026-01-09 15:24:28
264
原创 Warm-Flow开源国产工作流引擎集成
简洁易用:仅包含7张表,代码量少,上手和集成速度快。审批功能全面:支持通过、退回、驳回到上一个任务、撤销、拿回、任意跳转、转办、终止、会签、票签、委派、加减签、互斥和并行网关等多种审批操作,以及条件表达式、办理人表达和监听器等高级功能。流程设计器:通过jar包形式快速集成到项目,支持节点属性扩展,原生支持经典和仿钉钉双模式。流程图:自带流程图,通过jar包快速集,功能扩展,原生支持经典和仿钉钉双模式。条件表达式:内置常见的和spel条件表达式,支持自定义扩展。
2025-12-18 16:53:55
1496
原创 JS弹幕功能
队列方式 修改websocket的onmessage中的addMarqueeDelayQueue为addMarquee可以不使用队列 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>弹幕</title> <link rel="icon" type="image/png" href="logo.ico"> <
2025-01-17 15:39:10
760
原创 synchronized的虚假唤醒
(6) 然而可能出现这样的情况:当D号线程准备获得队列的锁,去获取队列中的元素时,此时B号线程刚好执行完之前的元素操作,返回再去请求队列中的元素,B线程便获得队列的锁,检查到num > 0,就获取到了C号线程刚刚入队的元素,然后释放队列锁。(7) 等到D线程获得队列锁,判断发现num == 0,B线程“偷走了”这个元素,所以对于D线程而言,这次唤醒就是“虚假”的,它需要再次等待num > 0。(5) 处于等待状态的D线程接收到C线程的唤醒信号,便准备解除阻塞状态,执行接下来的任务(获取队列中的元素)。
2024-01-10 17:58:24
514
原创 graylog lookup table使用
步骤 lookup table就是对上传日志的指定字段通过映射关系给日志增加一个字段 1. 访问lookup table页面 2.创建一个适配器 创建一个csv文件 配置适配器 3.创建一个Caches 4.创建lookup table 5. 使用lookup table 6.结果 ...
2022-11-10 15:02:19
1240
原创 graylog的API中增加自定义接口
来源 https://github.com/Graylog2/graylog2-server/blob/master/graylog2-server/src/main/java/org/graylog2/rest/resources/messages/MessageResource.java 代码 实现代码 package org.graylog2.plugin.custom.resource; import com.codahale.metrics.annotation.Timed; import i
2022-04-22 15:48:39
1221
原创 简单的弹窗-自动消失
弹窗效果: 创建一个弹窗组件(javascript) pageTanChuang.js // 上面按钮点击事件 function func(){ // 创建一个div var layer=document.createElement("div"); // 设置div的id值 layer.id="layer"; /* 创建div的样式,宽200px,高80px,下面的是css样式居中, * css样式居中具体了解链接:https://blog.youkuaiyun.com
2022-03-29 15:00:21
2020
1
原创 SpringSts中整合Thymeleaf到SpringMVC
SpringSts中整合Thymeleaf到SpringMVC 1. 当Tomcat启动时通过OnStart方法首先通过getRootConfigClasses()方法加载自定义的Root WebApplicationContext容器,其次通过getServletConfigClasses()方法再加载其他相关配置(SpringMVC配置) 2. 因此创建一个AppRootConfig 类用于声明ITemplateResolver模板解析器接口的Bean对象和SpringTemplateEngine模板引
2021-09-02 13:25:15
317
原创 CMD查看进程并关闭进程
举例 当时用SpringBoot时在启动服务器时出现端口号被占用,服务启动不起来 查看进程:netstat -ano | findstr 端口号 关闭进程:taskkill /pid 端口号的LISTENING值
2021-08-30 15:49:27
1020
原创 SpringBoot配置文件
在springboot项目中,设置debug=true,在控制台查看springboot自动配置的服务日志 #开启热部署 devtools.restart.enabled= true #开发阶段关闭Thymeleaf缓存机制,清除缓存,实现热部署,修改了html后不用重启,刷新页面就能看到效果 如果不行在idea中,ctrl+f9,,会build一次,再刷新浏览器就可以了 spring.thymeleaf.cache= false #设置服务端口号 serve..
2021-08-26 19:21:15
177
原创 org.slf4j.Logger打印日志的使用(需要的拿走)
org.slf4j.Logger打印并输出日志 log4j定义了8个级别的log优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。 log4j默认的优先级为ERROR。 ALL 最低等级的,打开所有日志记录 DEBUG 主要用于开发过程中打印一些运行信息。 INFO 突出强调应用程序的运行过程中打印一些你感兴趣的或者重要的信息,不能滥用,避免打印过多的日志。 WARN 表明会出现潜在错误的情形,有些信息不是错误信息,给程序员的一些提示。 ERROR
2021-08-24 20:36:43
14806
1
原创 Mybatis的配置使用在SpringFramework中(需要的拿走)
需要的拿走 这套mybatis配置可以承受大量用户访问而不出现卡顿 package com.xin.config; import javax.sql.DataSource; import org.apache.ibatis.logging.stdout.StdOutImpl; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSessionFactory; import org.myba
2021-08-24 16:42:36
602
1
原创 Redis连接池配置使用在SpringFramework中
需要的拿走 这个redis连接池可以承受50万人的访问,当我们需要在SpringFramework中需要,可以把它交给容器管理,通过给RedisTemplate<String, Object>自动注入就可以访问redis了 package com.xin.config; import java.time.Duration; import org.springframework.context.annotation.Bean; import org.springframework.contex
2021-08-24 16:29:06
607
原创 cookie和session和JSESSIONID
cookie和session的区别: cookie存放在客户端,session存放在服务器端 cookie不安全因为可以通过分析存放在本地的cookie session一定时间内保存在服务器上,当访问变多,占用服务器的资源性能,为了减轻资源性能最好使用cookie 单个cookie保存数据是有限的一半不超过4k,很多浏览器都限制一个站点最多保存20个cookie,而session保存在服务器端没有数量的限制,也可以保存更复杂的类型 cookie的生命周期是积累的,而session的生命周期是间隔的 由于H
2021-08-24 08:58:33
2046
原创 CGlib和JDK动态代理
CGlib和JDK动态代理 JDk动态代理基于接口实现 package com.xin.demo.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; //代理模式:基于JDK反射机制:(Poxy类+InvocationHandler接口) //通过接口实现:目标对象要实现接口
2021-08-22 16:32:48
492
原创 Tomcat启动时加载Spring容器的过程
Tomcat(Servlet3.0规范的web容器)启动时,会查找ServletContainerInitializer接口实现类,这个实现类SpringServletContainerInitializer由Spring提供,然后Spring提供的实现类会加载WebApplicationInitializer这个接口的所有实现类通过*onStartup(ServletContext servletContext)*这个方法 WebApplicationInitializer这个接口的实现类结构图 自定义
2021-08-22 16:22:36
890
原创 SpringAOP纯POJO切面方式实现(接口+XML)
xml自动代理和手动代理的使用 org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator org.springframework.aop.framework.ProxyFactoryBean 小实例 AOP就是在程序横向执行的过程中给程序纵向插入附加的功能,但不不会影响业务的执行,也就是在业务的两边加入需要的通知,可以是日志模块,权限模块,事务模块。 两个通知类:用于对数据访问层方法执行的通知 package com.xin.a
2021-08-22 15:58:43
562
原创 AspectJ注解驱动实现SpringAOP
springAOP AOP (Aspect Orient Programming)面向切面编程, 是一种编程思想,是面向对象编程(OOP)的一种补充,在不影响业务逻辑层和数据访问层的情况下给他们包装了一层服务(可以使日志,事务,权限等) AOP通过动态代理实现:基于接口的JDK Proxy实现和基于父类的CGLIB的实现 AOP的注解方式使用 注解案例的包的层级结构图 首先我们在com包创建一个Config配置类主要用于加载需要的Bean对象 package com; import org.spri
2021-08-21 16:19:30
373
原创 SpringMVC的基本操作
SpringMVC的基本操作 项目结构 com.xin.config AppRootConfig.java package com.xin.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.C
2021-08-20 21:58:48
439
原创 反射的应用
import com.alibaba.fastjson.JSONArray; 实体类UserIPAddress public class UserIPAddress { private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } private String danWei; //单位 private String xingMing; //姓名 private
2021-08-04 18:10:05
294
原创 字节流,字符流,Properties,序列化,反序列化
学习目标: 区分字节和字符文件的一般方式 通过文本文档的方式打开如果是乱码那就是字节文件,如果可以读懂就是字符文件 1.字节流 FileInputStream FileOutputStream BufferedInputStream BufferedOutPutStream 2.字符流 FileWriter FileReader BufferedFileWriter BufferedFileReader 学习内容: FileInputStream(“文件路径”)字节输入流 字节输入流将指定文件以字节的形式从
2021-05-10 16:53:21
424
原创 反射修改字符串内容
反射修改字符串内容 不同的JDK版本使用不同的数组 代码如下: public class de05 { public static void main(String[] args) throws Exception { String ss="111111"; Class reflect=ss.getClass(); Field f=reflect.getDeclaredField("value"); f.setAccessible(true); char[] b=(char[])
2021-01-24 15:50:46
1245
2
原创 关于反射的基本使用方法
关于反射 什么是反射? 反射是Java程序开发语言的特征之一,它允许运行中的java程序对自身进行检查,并能直接操作程序的内部属性和方法 一.获取Class对象 获取Class对象就是让Class对象获得一个类内部属性和方法,有三种方式 方式一 通过Object类的getClass()获取反射对象 Book book = new Book(); Class bookClass = book.getClass(); System.out.println("完全限定名:" + bookClass.toStri
2021-01-24 15:38:47
560
原创 Java集合中sort()方法的理解
Java集合中的sort()方法的理解 == 关于集合中的sort(Comparator<? super E > c)这个方法的理解,它的参数是一个实现Comparator接口的实例对象,因此实例对象的类必须实现Comparator这个接口并且重写compare(E o1, E o2)这个比较方法,因为sort这个方法就是根据实现类中的compare(E o1, E o2)这个方法进行比较排序的,当我们给集合对象存元素时,实际上元素被保存到elementData这个数组中, 我们跟随源码最终可以
2021-01-20 19:14:23
1663
原创 Java字符串常用的方法
String字符串常用的方法 1.charAt() String s="abcde"; char c=s.charAt(1);//获取字符串下标为1的字符 System.out.println(c);//b 2.compareTo() String s1="abcde"; int a=s.compareTo(s1);//比较两个字符串的大小(根据ASCLL) System.out.println(a);//结果:0(0是相等,-1小于,1大于) 3.toUpperCase()和toLow
2021-01-19 19:30:31
761
原创 Java中Arrays.sort()自定义数组的排序
Arrays.sort()方法参数为自定义对象数组时的使用 简述 首先Comparable< T t >是一个接口其中有一个抽象方法compareTo,当sort方法参数传入自定义对象数组时,我们跟随源码可以看到最终是以Comparable< T t >这个接口关联到参数数组中对象所在的类中的compareTo方法进行排序的,因此参数对象所对应的类必须实现Comparable< T t >接口,并且重写compareTo方法规定排序策略。 举例说明 1. 首先创建一
2021-01-16 16:53:25
1965
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅