- 博客(442)
- 收藏
- 关注
原创 如何在springboot启动时复制resource的文件到相对目录下
摘要:QqwryDatCopyRunner是一个Spring Boot启动时自动执行的文件复制组件,用于将resources/conf/ip/qqwry.dat文件复制到程序根目录的dwfile/resource/ip路径下。该组件解决了Windows/Linux路径兼容问题,支持IDE开发环境和JAR包部署模式,可自动创建目录、处理文件覆盖和资源流关闭。关键改进包括正确获取程序根目录、分段构建目标路径、异常处理等,确保IP库文件在不同环境下都能正确部署。
2026-01-30 11:50:33
73
原创 mybatis的XML,如何多值匹配,支持单值(=)和多值(IN)查询
摘要:该XML片段实现了solutionType字段的灵活匹配逻辑,支持单值(=)和多值(IN)查询。通过判断solutionType是否包含逗号,自动选择${}或#{}取值方式,确保SQL正确性且防止注入。保留了非空校验,与原有stage逻辑保持一致。建议在Java层预处理参数,去除空格和重复逗号,保证SQL合法性。改造后,单值(如"2")走=匹配,多值(如"1,2,3")走IN匹配,保持统一使用体验。
2026-01-29 13:31:31
83
原创 app登录接口实现,基于JWT的APP登录认证系统实现方案
本文介绍了一个基于JWT的社区端登录认证系统实现方案。系统包含以下核心组件:1)JWT工具类(CommunityJwtUtil),支持token生成、解析及刷新功能;2)登录上下文(CommunityUserContext)使用ThreadLocal存储用户信息;3)登录控制器(CommunityLoginController)提供登录、刷新token、密码重置等接口;4)Token拦截器(CommunityTokenInterceptor)实现请求认证;5)Web配置(CommunityWebConfig
2026-01-21 16:43:57
29
原创 如何将json行政区划导入数据库,中国行政区域数据(省市区县镇乡村五级联动)
本文介绍了基于BladeX框架实现行政区划数据导入的方案。通过设计blade_region_copy1表存储多级行政区划数据,包含省、市、区、镇、村各级编号和名称字段。核心实现包括:1) 通过REST接口接收JSON格式的行政区划文件;2) 使用递归方法convertDivisionToRegion将树形结构的行政区划数据转换为平铺结构;3) 根据层级动态填充各级编码和名称,并维护父子关系及祖区划编号;4) 最终批量保存到数据库。该方案支持五级行政区划的完整导入,包括之前缺失的街道和社区数据。
2026-01-15 09:58:44
36
原创 UE5像素流与Vue通信
本文记录了将UE程序发布为像素流供前端调用的实现过程。主要包含UE端配置和Vue前端集成两大部分:1)UE端需按官方文档配置信令服务器,注意测试时无需打包、需科学上网下载代码、硬盘格式需为NTFS等关键点;2)Vue端通过@epicgames-ps库实现像素流播放,封装了支持鼠标/键盘/触屏交互的组件,并提供了播放控制、UI交互等功能。文中详细展示了核心代码实现,包括像素流配置、播放控制、交互事件处理等,同时解决了自动播放被拒等常见问题。
2026-01-13 15:41:56
110
原创 1panel安装ollama无法使用GPU问题
摘要:本文介绍了在1Panel中配置Ollama服务使用GPU的方法。主要补全了Docker Compose文件中的Nvidia驱动环境变量,包括添加NVIDIA_VISIBLE_DEVICES=all和NVIDIA_DRIVER_CAPABILITIES=compute,utility参数。操作步骤包括修改Compose配置、重启容器及验证GPU是否生效。同时指出前提条件是服务器需安装Nvidia驱动和nvidia-container-toolkit,并提供了相关安装命令。成功配置后,Ollama日志将显
2026-01-08 14:11:09
337
原创 nvidia container toolkit安装,保证docker容器连接显卡
摘要:本文介绍了安装NVIDIA显卡容器支持工具的步骤。准备工作包括确保已安装NVIDIA显卡驱动和Docker容器,并配置ATP源。安装过程通过apt-get命令完成,需执行nvidia-container-toolkit的安装和Docker的配置。最后需要重启Docker服务使配置生效。整个过程涉及软件源配置、工具安装和系统服务重启等关键步骤。
2025-12-23 09:48:47
180
原创 使用Redisson实现同一业务类型串行执行的分布式锁方案,解决并发问题
摘要:本文介绍了使用Redisson实现同一业务类型串行执行的分布式锁方案。通过为每个bussType创建独立锁(如code:lock:order),确保相同业务类型请求串行处理,不同业务类型并行执行。方案采用Redisson的RLock实现自动续期、超时释放和死锁防护,比原生Redis锁更稳定。实现步骤包括:1)引入Redisson依赖;2)配置Redis连接;3)改造Service方法,在获取锁后执行核心业务逻辑。关键特性包括细粒度锁、非阻塞获取、自动续期(默认10秒)和超时释放(30秒),有效解决并发
2025-12-03 13:40:34
242
原创 Java打印应用中所有RedisTemplate的序列化器配置
该代码定义了一个Spring Boot配置类MultiRedisSerializerPrintConfig,用于打印应用中所有RedisTemplate的序列化器配置。通过实现CommandLineRunner接口,在应用启动时自动获取所有RedisTemplate实例,并记录其键/值序列化器的类名(包括默认的StringRedisTemplate)。输出格式清晰展示了每个模板的名称及其四种序列化器(Key、HashKey、Value、HashValue)的具体实现类,帮助开发者快速检查Redis序列化配置
2025-11-24 16:37:15
45
原创 使用python脚本批量导出minio整个槽的文件导出
这段Python代码使用boto3库从MinIO存储下载指定文件夹的所有文件。首先配置MinIO连接参数(端点、密钥、桶名称),设置本地下载目录。创建MinIO客户端后,通过分页获取指定前缀的所有对象,逐个下载到本地对应路径,自动创建必要的子目录。最终输出下载完成提示。代码实现了从MinIO批量下载文件的功能。
2025-11-13 10:09:54
110
原创 The maximum size 268435456 for an individual file in a multipart request was exceeded
摘要:本文分析了SpringBoot项目中文件上传时出现的MaxUploadSizeExceededException错误,核心原因是上传文件大小超过了服务器默认的256MB限制。解决方案分为两种场景:对于SpringBoot项目,需同时配置Spring MVC和Undertow服务器的文件上传限制(推荐YAML配置方式);对于传统SpringMVC项目,则需修改undertow.xml和Spring配置文件。文中详细说明了配置参数的含义、单位规范及注意事项,并强调必须重启服务才能使配置生效。同时建议配合前
2025-11-12 13:24:19
331
原创 报错:Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed betwee
摘要:本文解决了Spring Cloud Feign调用时出现的JSON解析错误问题。异常信息表明JSON数据中存在非法控制字符,原因是Feign请求的JSON数据被压缩导致。解决方案包括:1)检查并移除server.compression.enabled配置;2)将feign.compression.request/response.enabled设为false。若问题仍存在,建议检查其他可能的压缩配置。该问题通常由微服务间通信时的数据压缩引起。
2025-11-07 14:07:04
219
原创 基于TCP协议的智能测量机模拟系统,Socket连接
本文实现了一个基于TCP协议的智能测量机模拟系统,包含服务端和客户端组件。服务端绑定192.168.3.25:8209端口,接收"<get>"指令后返回模拟数据"<600|400|250|10.5>"(长宽高重量)。客户端通过SpringBoot的REST接口触发连接,支持3次重试机制,并采用线程池异步处理结果。系统严格遵循协议格式,包含数据校验、异常处理和资源管理机制,实现了测量数据的标准化交互流程。
2025-10-30 14:30:36
107
原创 com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (‘ ‘ (code 160)): was expe
JSON解析失败原因在于字符串中包含非法不间断空格(code160)。问题出现在data数组末尾的空白区域,这个非标准空格看似正常但会被解析器拒绝。解决方案:1)手动检查并删除异常空格;2)使用代码过滤非法字符(如replaceAll去除\u00A0)。关键点:JSON仅允许标准空格(code32),其他空白字符均属非法。修复后需确保数组闭合格式正确。
2025-10-21 11:02:41
178
原创 mybatis物理删除某条记录
该代码片段展示了两种物理删除数据库记录的SQL实现:1) 根据ID单条删除记录;2) 批量删除多条记录。对应的Java接口方法分别为physicalDeleteById(通过ID删除单条)和physicalDeleteBatchIds(批量删除)。两种操作都是直接从数据库中永久删除数据,使用时需谨慎。批量删除采用foreach循环处理ID集合,适用于需要同时删除多条记录的场景。
2025-09-28 13:51:53
164
原创 JAVA实现在远程调用时传递用户信息
摘要:本文介绍了通过Feign拦截器和ThreadLocal实现企业微信用户信息在远程服务间传递的方案。调用方通过Feign拦截器将用户ID放入请求头,目标服务通过拦截器解析请求头并存入ThreadLocal,业务层可直接获取当前用户信息。方案包含5个关键步骤:配置Feign拦截器、创建ThreadLocal工具类、添加Web拦截器、配置拦截器路由以及业务层使用用户信息。该方案确保了用户信息在调用链中的一致性,同时通过请求完成后清除ThreadLocal防止内存泄漏,适用于各种远程调用场景。
2025-09-18 14:04:03
425
原创 国产化ARM64服务器LibreOffice解压安装包kkFileView4.3docker安装包:快速部署办公利器
该项目为国产化ARM64服务器提供LibreOffice解压安装包和kkFileView 4.3的Docker镜像,支持文档处理和文件在线预览功能。LibreOffice包解压即可使用,kkFileView通过Docker快速部署,只需端口映射即可运行。具有兼容性强、部署简单、开源免费等特点,适用于国产化服务器环境下的办公需求,助力提升办公效率。项目地址:https://gitcode.com/Open-source-documentation-tutorial/0b652
2025-09-08 15:48:50
759
原创 oss文件存储本地路由转发
本文介绍了一个基于MinIO的文件上传下载服务实现。主要内容包括:1) 使用OssTemplate类封装文件上传功能,提供putFile方法处理文件存储,并新增localFileLink方法生成本地服务转发链接;2) 通过OssProperties类管理OSS配置参数;3) 在OssController中实现文件上传接口和文件下载转发功能,下载接口通过HTTP连接获取OSS文件并返回字节流,支持中文文件名处理。该方案实现了文件从客户端上传到MinIO,并通过本地服务转发下载的完整流程。
2025-09-05 13:04:34
252
原创 构建包含IK插件(中文分词插件)的Elasticsearch镜像
本文介绍了一个用于构建包含IK分词插件的Elasticsearch镜像的Shell脚本。脚本首先定义变量,检查IK插件目录是否存在,然后创建临时Dockerfile并将插件复制到容器中。接着执行镜像构建,最后清理临时文件并输出构建结果和使用说明。该脚本可快速构建定制化的Elasticsearch镜像,支持指定版本号,并自动处理权限问题。构建成功后提供容器启动示例命令。
2025-08-21 16:26:28
351
原创 【k8s部署】使用华为云容器化部署Java项目指南
本文介绍了将Java应用容器化并部署到华为云的全流程。首先需要准备华为云账号、开通相关服务并配置开发环境。接着详细说明了如何编写Dockerfile构建Java应用镜像,包括设置基础镜像、工作目录、暴露端口等步骤。然后指导将镜像上传到华为云的SWR容器镜像服务。最后重点讲解在CCE容器引擎中的两种部署方式:通过控制台界面操作和使用YAML文件配置(推荐),包括创建无状态负载、配置资源配额、健康检查等高级设置。文章还提供了配置环境变量、使用ConfigMap和Secret等扩展功能的示例代码。
2025-08-14 11:50:54
361
原创 libreoffice远程接口,线上模式
本文介绍了在Docker中部署LibreOffice文档转换服务的方法。通过创建特权容器并映射配置文件,解决了Docker环境无法直接使用JAR包的问题。详细说明了Docker运行参数配置,包括端口映射、字体目录挂载和配置文件映射。文章还提供了完整的Java实现代码,展示如何通过REST API远程调用LibreOffice服务实现Word转PDF功能,包括请求构建、文件处理和异常处理。最后给出了云端服务的配置示例,包含连接超时等参数设置。该方案适用于需要在容器化环境中使用LibreOffice进行文档转换
2025-08-06 10:39:07
380
原创 springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
文章总结了在SpringBoot项目中整合LibreOffice实现Word转PDF功能的两种方案:本地服务和远程服务。本地方式通过JodConverter直接调用LibreOffice转换,远程方式则通过Docker部署JodConverter REST服务实现远程调用。文中详细记录了配置过程、遇到的坑点(如远程连接超时、格式错乱等)及解决方案,特别强调了字体文件挂载的重要性。最终推荐使用Docker部署远程服务方案,虽然镜像体积较大(约1GB),但能保证稳定性和兼容性。文章还提供了Word模板格式调整、
2025-08-06 10:17:51
1673
原创 docker-compose安装libreoffice
本文介绍了使用Docker Compose配置和启动LibreOffice在线服务的步骤。通过YAML文件定义服务,包含镜像、卷映射、端口暴露等配置,并设置环境变量和特权模式。文章详细说明了在后台启动服务的方法(使用-d参数),以及如何通过docker-compose ps和docker ps命令验证服务状态。该配置特别针对LibreOffice在线版本进行了优化,包括禁用SSL等安全设置,适合快速部署文档处理服务。
2025-08-05 16:15:21
304
原创 时间戳 + 签名机制
本文提出了一种基于时间戳+签名机制的无登录动态鉴权方案,通过客户端生成动态签名(包含时间戳、随机字符串和业务参数)实现安全访问。方案包含前后端完整实现:后端采用拦截器验证签名有效性、时间戳时效性和随机数唯一性;前端通过加密函数生成动态签名。该方案具备防重放、防篡改特性,既保障接口安全又无需强制登录,适用于门户网站等场景。关键点包括前后端签名规则一致性、HTTPS传输安全保障以及随机数防重放机制。
2025-07-31 17:30:31
1143
原创 企业微信H5应用OAuth2登录,企业微信授权登录
企业微信H5应用OAuth2登录流程主要包括:1)构造授权链接跳转;2)后端通过code获取access_token和用户信息;3)需配置可信域名并处理安全验证。该流程支持静默授权获取基本信息或手动授权获取敏感数据,建议使用随机state防CSRF攻击,并定期刷新access_token。实现时需注意回调参数处理和URL清理,确保登录功能安全可靠。
2025-07-25 16:45:31
953
原创 HTTP请求组件,http网络请求工具类
本文介绍了一个基于Spring的ESB总线系统HTTP请求组件(EsbHttpComponent),该组件封装了GET/POST请求处理逻辑,支持自动URL构建、请求头配置和参数拼接。主要功能包括:1)发送GET/POST请求并处理响应;2)支持返回简单类型和复杂类型(通过TypeReference);3)自动处理200状态码和非空响应体检查;4)提供日志记录和异常处理。组件通过RestTemplate实现HTTP通信,使用ObjectMapper进行JSON序列化,并提供了两个使用示例展示如何调用接口获取
2025-07-24 12:23:49
330
原创 Java 实现的打印机套打功能程序。这个程序将模拟在已有表格的纸张上打印预约单数据,确保内容能准确对齐到表格的相应位置。
本文介绍了一个预约单套打功能的Java实现方案,通过精确坐标定位在已有表格上打印预约信息。程序采用Appointment类存储预约数据,包含姓名、电话、日期等字段,并预设了各字段在纸张上的精确坐标位置。使用Java的Printable接口实现打印功能,支持设置打印边距、纸张大小和打印参数,同时提供中文显示支持。程序还包含模拟数据生成功能,便于测试。用户可根据实际表格布局调整坐标值,并通过系统打印对话框选择打印机和执行打印操作。
2025-07-23 09:55:47
236
原创 切面编程,aop记录详细的参数以及请求的日志
文章摘要 本文介绍了一个名为OpsSyncLogAspect的AOP切面类,用于记录数据同步操作的执行日志。该切面通过两种方式拦截方法:1) 标注了@OpsSyncLog注解的方法;2) com.pantech.extern包下MQ消息处理类的process方法。在方法执行前后,切面会记录操作名称、执行时间、运行时长、参数信息以及执行结果(成功/失败)。参数信息会进行长度限制以避免日志过大,异常信息会被截取前500个字符。日志保存采用异步方式实现,不影响主业务流程。@OpsSyncLog注解允许自定义操作名
2025-07-22 10:25:41
150
原创 注解 + AOP 的方式记录日志到 t_ops_sync_log 表
本文介绍了通过注解+AOP实现日志记录的方法。首先定义@OpsSyncLog自定义注解标记需要记录的方法,包含操作名和是否记录参数等配置。然后创建切面类OpsSyncLogAspect,使用环绕通知拦截被注解标记的方法,记录方法执行时间、状态、异常等信息,并异步保存到t_ops_sync_log表。日志实体TOpsSyncLog包含操作名称、执行时间、运行时长、状态等字段。最后展示了在DataSyncService中使用注解标记同步方法的示例。该方案通过注解+AOP实现了非侵入式的日志记录,不影响原有业务逻
2025-07-21 17:53:20
284
原创 (java17镜像包)(jdk17)解决docker alpine缺少字体的问题 Could not initialize class sun.awt.X11FontManager
SpringBoot项目镜像因缺少字体报错(Could not initialize class sun.awt.X11FontManager)的解决方案:使用eclipse-temurin提供的OpenJDK17(或JDK8)作为基础镜像,基于Alpine Linux系统。关键步骤包括:1)配置清华源加速下载;2)安装freetype和fontconfig字体库;3)设置UTF-8编码环境;4)配置时区为上海。这些修改能解决因镜像缺少字体导致的验证码生成等问题。
2025-07-17 17:13:37
671
原创 Java 8 date time type `java.time.LocalDateTime` not supported by default 日期序列化问题
Jackson默认不支持Java8的LocalDateTime类型,报错提示需引入jackson-datatype-jsr310模块。解决方案是添加该依赖并配置ObjectMapper:注册JavaTimeModule模块,设置日期格式为"yyyy-MM-dd HH:mm:ss.SSS"。在RedisTemplate配置中,同样需要注册该模块并进行序列化设置,包括Visibility、DefaultTyping等参数,同时配合StringRedisSerializer实现键值对的序列化处
2025-07-15 16:34:13
208
原创 零配置快速部署 KubeSphere 和 Kubernetes k8s
在 Linux 上以 All-in-One 模式安装 KubeSphere
2025-07-13 13:49:01
324
原创 实现在线预览pdf功能,后台下载PDF
文章摘要:本文实现了一个PDF投诉统计报告预览与导出的功能模块。前端采用Vue3+Naive UI构建模态框,包含PDF预览、打印和下载功能,通过iframe展示PDF内容。后端使用Spring Boot实现PDF导出,首先生成Word文档并插入动态数据和图片,再转换为PDF格式返回。关键技术包括:1)前端Blob对象处理PDF流;2)后端XWPFTemplate生成动态Word;3)图片处理与渲染;4)LocalConverter实现Word转PDF。该方案实现了完整的PDF生成、预览和导出流程,并优化了
2025-07-11 12:56:35
434
原创 导出word并且插入图片
本文介绍了导出报告Word文档的实现方法。通过Spring Boot的@GetMapping注解创建"/exportReportWord"接口,使用XWPFTemplate工具生成Word文件并直接输出到响应流。方法包含:(1)设置响应头为Word文档类型;(2)调用getXwpTemplate方法处理模板;(3)异常处理机制。模板处理方法getXwpfTemplate包含:文本参数处理(如格式化当前时间)、图片处理(将PNG图片转为BufferedImage并设置尺寸)以及模板编译(绑
2025-07-11 11:13:30
367
原创 如何用 querywrapper写sql的置顶排序
摘要:该文介绍了一个投诉管理系统的SQL查询优化方案,重点解决超过10天未办结工单的置顶显示问题。开发人员建议在调试时先运行验证SQL,检查时间字段数据类型和值准确性。最终实现方案使用DATEDIFF函数判断工单时间差,通过ORDER BY条件将逾期工单置顶,同时保留原始创建时间降序排列。文中还比较了DATEDIFF和TIMESTAMPDIFF函数的精度差异,并提供了完整的Java后台接口实现代码,包括去除默认排序、添加自定义排序条件等关键步骤。(150字)
2025-07-10 10:20:05
309
原创 java内存缓存实现 与 redis缓存实现 (ConcurrentHashMap 应用)
本文展示了两种缓存实现方案:1) 基于ConcurrentHashMap的本地内存缓存(LocalCacheService),提供线程安全的缓存操作,包含缓存查询、自动加载、单键清除和全部清除功能;2) Redis分布式缓存(CacheService),通过RedisTemplate实现,包含基本的缓存查询和自动加载功能。两种方案均采用Supplier接口实现"缓存未命中时自动加载"的模式,其中本地缓存适用于单机高频访问场景,Redis缓存适用于分布式环境。代码结构清晰,展示了Sprin
2025-07-08 15:20:31
367
原创 java流式计算 获取全量树形数据,非懒加载树,递归找儿
本文介绍了树形结构数据处理方法,包含三个核心方法:1) allTree方法获取完整树形数据,支持按指定根节点筛选子节点;2) getChildrenCategory递归查找子节点并排序;3) getTree构建完整树形结构,从一级节点开始逐层嵌套子节点。所有方法均按sno字段排序,处理了空值情况,实现了树形数据的层级组织和灵活查询功能。代码结构清晰,采用流式处理提高可读性。
2025-07-04 16:16:33
263
原创 启动一个单节点Elasticsearch 8.14.0 docekr容器,es 部署Elasticsearch ik插件
摘要:该命令启动一个单节点Elasticsearch 8.14.0容器,配置了512MB堆内存,关闭了安全认证功能,并将9200端口映射到主机8100端口。通过设置ulimit参数优化了系统资源限制,适合开发测试环境使用。
2025-06-26 12:18:10
198
原创 docker 安装Elasticsearch + kibana + ik分词器
摘要:本文介绍使用Docker安装Elasticsearch 7.17.0(单节点模式)及配套工具链。主要包括:1)通过指定网络和存储卷运行ES容器;2)安装Kibana并配置连接ES;3)安装IK分词器(版本需与ES一致)。重点说明端口映射、内存配置、数据持久化等关键参数,并提供两种安装IK分词器的方法。全部组件采用7.17.0版本以避免8.0版本的高内存需求,适合资源有限的环境部署。
2025-06-26 11:37:09
1138
anapsix/alpine-java:8-server-jre-unlimited
2025-02-05
100个python脚本合集,适合学习,生活日常等等
2024-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅