- 博客(693)
- 资源 (2)
- 收藏
- 关注
原创 PDF文件可执行代码的检测
本文介绍了使用Java和Apache PDFBox库检测PDF文件中可执行代码的方法。通过分析PDF文本内容,可以识别包含"java"、"javascript"、"exe"、"bat"等关键词的可疑代码片段。代码实现了三种检测方式:1)检查文本内容中的危险关键词;2)分析PDF文档结构和COS对象;3)专门检测JavaScript脚本。检测过程涉及解析PDF页面内容、提取文本区域、分析文档对象结构等操作。该方案能有效发现PDF文
2025-09-10 15:19:14
104
原创 java生成横向表格和竖向表格
本文介绍了两种HTML表格生成方法:竖向表格和横向表格。竖向表格将键值对按列排列,每行可指定显示列数;横向表格采用标题行加数据行的传统布局。通过Java工具类HtmlTableUtil实现,分别提供toVerticalTableHtml()和toHorizontalTableHtml()方法。竖向表格适合展示键值对数据,横向表格适合多行数据展示。两种表格都采用统一样式:100%宽度、1px灰色边框和边框合并效果。
2025-09-10 15:14:48
195
原创 java 将pdf转图片
本文介绍了使用Java的PDFBox库将PDF文件转换为图片的方法。通过PDFRenderer类,可以加载PDF文档并将每页渲染为BufferedImage对象,然后使用ImageIO.write方法将图像保存为PNG或JPG格式。代码示例展示了如何设置DPI(144)来控制图片清晰度,并提供文件路径拼接、计时统计等功能。该方法适用于批量转换PDF页面的场景,转换速度与DPI设置相关。
2025-09-10 10:45:15
323
原创 apache poi 导出复杂的excel表格
Excel复杂表格导出实现方法 本文介绍了如何使用Apache POI库导出带有复杂格式的Excel表格。通过Java代码示例演示了如何创建包含合并单元格、边框样式、颜色填充等特性的表格。关键实现步骤包括: 创建HSSFWorkbook工作簿对象 设置单元格样式(边框、颜色、字体、对齐方式) 使用CellRangeAddress实现单元格合并 通过RegionUtil设置合并区域的边框样式 自动调整列宽 示例代码展示了从创建表格标题到填充数据的完整流程,特别适合需要导出统计报表等复杂格式的场景。实现依赖Ap
2025-09-10 10:40:52
137
原创 java控制台手动
这段Java代码演示了如何使用Scanner类从控制台获取用户输入。程序首先创建Scanner对象读取System.in输入流,然后通过System.out.print提示用户输入内容,使用scanner.next()获取输入字符串,最后用System.out.println输出用户输入的内容。这是一个简单的控制台交互示例。
2025-09-10 09:46:22
211
原创 lucene渲染未命中最匹配的关键词和内容
Lucene搜索时若未命中最佳匹配语句,可能是默认最大分析字符51200限制导致。解决方法是通过高亮显示设置更大的maxDocCharsToAnalyze值(如Integer.MAX_VALUE)覆盖全文内容,确保准确匹配。代码示例演示了如何配置高亮器,包括设置HTML格式化样式、片段长度和关键参数maxDocCharsToAnalyze,以提升大文本搜索精度。
2025-09-10 09:43:01
155
原创 js base64编码和解码解决中文乱码问题
Base64编码中文时出现乱码是因为未正确处理UTF-8编码。解决方案是:在编码前先用TextEncoder将中文转为UTF-8字节数组,再转换为二进制字符串进行Base64编码;解码时先用atob解码,将结果转为字节数组后,通过TextDecoder按UTF-8解码还原中文。JavaScript示例代码提供了完整的UTF-8与Base64互转实现,确保中文内容编码后能正确解码显示。
2025-09-10 09:22:22
229
原创 编写一个网页版的json差异比较工具(无需依赖)
本文介绍了一个纯HTML+JS实现的JSON差异对比工具,无需依赖第三方库。该工具提供两个文本输入框用于输入JSON数据,通过"比较差异"按钮可高亮显示两个JSON之间的差异。实现特点包括: 完全前端实现,无需后端支持 支持语法高亮和差异标记(新增、删除、修改) 提供交换JSON位置、清空等便捷功能 响应式设计,适配不同屏幕尺寸 包含颜色图例说明差异类型 工具使用简单直观,适合开发人员快速比较JSON数据结构差异,适用于API响应比对、配置变更检查等场景。
2025-09-10 09:14:09
223
原创 mybatis处理统计sql进度丢失问题
摘要: 在MyBatis中执行统计SQL时,可能出现进度丢失问题,导致结果异常。解决方法是对SUM函数结果进行精度控制,使用CAST将其转换为DECIMAL(20,6)格式,确保数值精度。示例SQL修改为:SELECT CAST(SUM(decimal_column) AS DECIMAL(20,6)) AS sum_value FROM your_table。
2025-09-10 09:06:45
206
原创 fastjson处理json顺序
Fastjson处理JSON顺序的解决方案包括:1.启用Feature.OrderedField特性或使用LinkedHashMap保持顺序;2.通过@JSONType(orders)或@JSONField(ordinal)注解显式控制字段顺序;3.全局配置关闭字母排序。需注意嵌套结构需逐层处理,有序模式可能影响性能,不同版本Fastjson行为可能有差异。综合使用特性配置、数据结构和注解可实现灵活的JSON顺序控制。
2025-09-10 08:56:32
697
原创 java将doc文件转pdf
本文介绍了使用iTextPDF和POI库将DOC文件转换为PDF的Java实现方案。该方案通过HWPFDocument读取DOC文件内容,利用iTextPDF创建PDF文档并写入文本。主要依赖包括itextpdf、poi-ooxml等相关库。代码实现了文件转换功能,支持中文字体处理,但存在局限性:不支持复杂格式、图表和图片。测试用例展示了如何调用转换方法。该方案适用于简单的DOC转PDF需求,对于格式复杂的文档可能不适用。
2025-08-27 10:23:59
412
原创 使用reactor-rabbitmq库监听Rabbitmq
摘要: Reactor RabbitMQ 是基于 Project Reactor 的响应式 RabbitMQ 客户端,支持非阻塞、背压友好的消息处理,适用于高并发场景。核心特性包括响应式流(Flux/Mono)、自动背压管理和声明式配置。与 AMQP-Client 和 Spring AMQP 相比,它更适合响应式微服务架构,但需掌握 Reactor 编程模型。提供消息发送/接收、集群监听、手动/自动ACK及错误处理等能力,可通过 Maven 快速集成。示例代码展示了连接创建、消息收发及高级配置(如集群监听)
2025-07-04 17:12:34
797
原创 @Bean属性的destroyMethod解释
摘要:Spring 4.3+ 的 @Bean 默认使用 destroyMethod = "(inferred)",自动检测并调用 Bean 的 close() 或 shutdown() 方法进行销毁。适用于 CuratorFramework、JDBC 连接等资源管理,开发者无需显式配置。若需禁用自动推断,可设置 destroyMethod = "",或通过 @PreDestroy 自定义销毁逻辑。最佳实践建议对关键资源显式指定销毁方法以提高可读性,确保资源正确释放。(
2025-07-03 15:12:34
551
原创 RabbitMQ简单消息发送
本文介绍了使用RabbitMQ发送简单消息的实现方法。首先需要添加Spring Boot AMQP依赖,然后通过代码示例展示了如何建立连接、创建通道、声明队列以及发送消息。示例中包含了RabbitMQ的基本配置参数(地址、用户名、密码等),并详细说明了queueDeclare和basicPublish方法的参数含义。最后还展示了如何正确关闭通道和连接。该代码实现了一个完整的RabbitMQ消息发送流程,适合初学者快速上手使用RabbitMQ进行消息队列操作。
2025-07-01 15:07:54
318
原创 RabbitMQ简单消息监听和确认
RabbitMQ消息监听实现 摘要:本文介绍了使用Spring Boot监听RabbitMQ队列的简单方法。首先需要添加spring-boot-starter-amqp依赖,然后通过配置类实现消息监听功能。核心配置包括:1) 创建ConnectionFactory连接工厂;2) 配置SimpleMessageListenerContainer指定要监听的队列;3) 设置消息监听器处理接收到的消息。示例代码展示了如何监听queue1和queue2队列,并在收到消息时打印日志。这种方法适用于需要实时处理Rabb
2025-07-01 14:47:37
434
原创 zookeeper Curator(6):集群中的Follower和Observer
Zookeeper中的Observer节点不参与投票是为了优化集群性能与扩展性。Observer的核心作用是分担读请求负载,而非参与写入一致性维护。其设计考量包括:避免写入性能下降(投票需半数以上节点确认)、减少网络通信开销、防止脑裂风险、简化故障恢复流程。Observer适用于读多写少场景,通过异步同步数据提升读取吞吐量,同时不影响集群写入性能。这种设计在扩展性和一致性之间取得了平衡,使得Zookeeper更适合大规模分布式系统的需求。
2025-06-29 01:01:09
1159
原创 zookeeper Curator(5):集群架构和集群搭建
Zookeeper集群是一个由奇数节点(3/5/7)组成的分布式协调系统,采用Leader-Follower架构确保高可用性和数据一致性。核心机制包括ZAB协议的原子广播和崩溃恢复功能,保证写操作有序执行和数据最终一致。Leader选举基于EPOCH、ZXID和SID三级优先级规则触发。部署时需要配置服务器列表、端口和节点ID,通过心跳机制维持集群健康。优势在于强一致性和故障容忍,但存在写性能瓶颈和运维复杂度等挑战。Zookeeper广泛应用于配置管理、分布式锁等场景,是分布式系统的基础组件。
2025-06-29 00:57:47
591
原创 zookeeper Curator(4):分布式锁
摘要 分布式锁是解决分布式系统中跨JVM进程同步问题的关键技术。本文介绍了分布式锁的实现方式,包括基于缓存(如Redis)、Zookeeper和数据库(乐观锁、悲观锁)的方案。重点分析了Zookeeper分布式锁的原理,通过创建临时顺序节点和监听机制实现锁的获取与释放。此外,详细阐述了Curator提供的五种分布式锁API(如可重入锁、读写锁、信号量等)及其适用场景,并对比了各类锁的特性。最后以12306售票系统为例,演示了使用Curator的InterProcessMutex解决高并发下超卖问题的实践方案
2025-06-29 00:18:48
991
原创 zookeeper Curator(1):认识zookeeper和操作命令
ZooKeeper是一个分布式的树形目录服务,作为Hadoop生态系统的核心协调组件,用于管理配置、分布式锁和集群。其数据模型采用层次化节点结构,支持持久化、临时、顺序等节点类型。安装过程包括下载解压、环境配置、启动服务等步骤,支持Linux和Windows平台。常用命令涵盖服务管理(启动/停止)、节点操作(创建/删除)、监控和集群管理。ZooKeeper通过临时节点和监听机制实现分布式协调,适用于构建高可靠的分布式系统。注意节点数据限制(1MB)和ACL权限控制等特性。
2025-06-28 23:22:25
1055
原创 zookeeper Curator(3):Watch事件监听
摘要:Zookeeper通过Watcher机制实现分布式协调服务,支持事件监听功能。Curator提供了三种监听方式:1) NodeCache监听单个节点变化;2) PathChildrenCache监听子节点变化;3) TreeCache结合前两者功能,监听节点及其所有子节点变化。每种方式都通过注册监听器实现事件响应,需要开启监听并保持程序运行。代码示例展示了如何创建监听器、注册事件处理器以及处理节点数据变化。这些功能简化了原生Zookeeper Watcher的使用,为分布式系统开发提供了便利的监听机制
2025-06-28 19:54:07
885
原创 zookeeper Curator(2):Curator的节点操作
Curator 是Apache Zookeeper 的java 客户端库常见的Zookeeper Java API原生Java APIZkClientCuratorCurator 项目的目标是简化Zookeeper 客户端的使用。Curator 最初是Netfix 研发的,后来捐献给了Apache基金会,目前属于 Apache顶级项目。
2025-06-28 18:06:22
559
原创 textarea右下角有小黑点
这个是浏览器自带功能,那个区域属于滚动条的占位区使textarea可以调整size,添加 style="resize:none"即可,添加多行文字时还是会出现滚动条的。
2025-06-11 14:45:03
362
原创 ipad获取时间NaN
摘要 在JavaScript中处理日期字符串时,iPad设备对"2025-05-01"格式的解析存在问题,返回NaN。而PC和iPhone则能正常解析。解决方案是将日期分隔符从"-"替换为"/",使用dateStr.replace(/\-/g, "/")转换格式后,iPad也能正确解析时间戳。这个差异源于不同设备对ISO日期格式支持的差异,强制转换为"/"分隔格式可确保跨设备兼容性。
2025-06-06 11:36:37
247
原创 PDF.js无法显示数字签名
PDF.js 从 v2.9.359 版本开始正式支持数字签名的渲染与显示,此前版本需通过修改源代码实现基础兼容。建议升级pdfjs组件大于等于v2.9.359。
2025-06-03 16:53:32
678
2
原创 easyui进度条
/ 显示带自定义样式的加载提示。'正在上传大文件...''系统处理中...'// 显示模态遮罩层。// 模拟分步骤加载。// 更新进度和文本。
2025-04-18 11:18:33
983
原创 IDEA加载项目时依赖无法更新
在排除仓库问题后,如果IDEA 提示无法import maven ,那么可能的问题是maven的版本和IDEA不匹配。以下是。
2025-04-03 16:42:24
1083
原创 mybatis insert语句获取新增的id
配置了xml文件的 标签配置了:useGeneratedKeys=“true” keyProperty=“id”
2025-03-12 15:58:25
361
原创 svn忽略文件
wps打开文件时,会产生~$测试文件.doc 这种文件,这些文件是临时产物,没有实际意义。但是有时候却会莫秒奇妙的出现在提交列表中,如何取消?打开Git Settings,配置Global ignore parttern 即可(多个规则以空格分隔)
2025-02-27 10:00:28
346
原创 不同地图坐标系转换
目前常用的地图坐标系有多种标准,几家主流地图(如百度地图,高德地图和QQ地图等)使用的坐标系标准也各不相同。假如您有GPS坐标,想在百度地图上显示;或者有百度地图的坐标,但想在微信地图上显示,这时就需要使用一些算法或通过官方的API来转换坐标,在目标地图上正确显示。
2025-01-26 11:02:26
427
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人