最近写了一个小程序,使用netty作为后端框架搭建了一个聊天服务,协议用的webSocket,本地调试好后,部署到测试服,使用nginx反向代理服务器。这时候客户端出现报错:{code: 1006, reason: “abnormal closure”}。 碰到这样的问题,本能地想要祭出试错大法:在网络上查找方案,然后不断地尝试看看能否解决问题。最近看过netty是如何完成websocket连接的源码,所以心想是不是可以自己去解决这个问题。 说干就干,第一步自然是加上日志。重写了WebSocke
2024-11-26mybatisPlus做行锁 1. 需求 数据库表中有一个字段是一个逗号分隔的字符串,需要对这个字段的值做增删改的处理。首先要做查询,然后对这行数据加锁,业务逻辑处理后再更新。 2. 代码 引入依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </de
2024-11-26<!-- Hutool工具类 --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.10</version> </dependency> 在Spring Boot的配置文件application.properties中添加配置: # 设置hutool的字符集为UTF-8 hutool.setting.charset=UTF-8 创建一
2024-11-26分页: 上篇吧分页漏掉了,这次补上,drf自带的分页不能满足我们的需求,需要我们自定义 如果不传page_size就不会触发分页,默然返回全部,也符合我的需求 from rest_framework.pagination import PageNumberPagination from rest_framework.utils.urls import replace_query_param from rest_framework.response import R
2024-11-26背景:随着城市化进程的加快,小区物业管理成为了一个日益重要的课题。传统的物业管理方式存在着效率低、信息不透明、服务质量不高等问题,因此需要引入现代化的管理手段来提高小区物业管理的水平。 目的:本课题旨在研究小区物业管理系统,通过引入信息技术和管理理念,提高小区物业管理的效率和服务质量,满足居民对于生活质量的需求。 意义:小区物业管理系统的建立将有助于提高小区物业管理的效率和服务质量,减少人力成本,提高居民生活质量,促进社区和谐稳定发展。 研究思路:首先,对小区物业管理的现状进行调研和分析,了解存
2024-11-26本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。 系统程序文件列表 开题报告内容 一、研究背景 在当今社会,高校学生面临着各种各样的压力,如学业压力、社交压力、就业压力等,这些压力对他们的心理健康产生了诸多影响 。随着互联网技术的不断发展,利用信息技术构建高校学生心理健康预约系统成为一种趋势。然而,目前的心理健康服务体系在满足高校学生需求方面仍存在不足,例如预约不便、资源整合不够等问题。现有的一些系统可能缺乏针对高校学生特点的专门设计,在功能上未能全面涵
2024-11-26一、SpringAMQP基本介绍 AMQP(Advanced Message Queuing Protocol),是用于在应用程序或之间传递业务消息的开放标准,该协议与语言和平台无关,更符合微服务中独立性的要求。Spring AMQP 是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,spring-rabbit;是底层的默认实现。Spring AMQP官网: 特征: 用于异步处理入站消息的侦听器容器 用于发送和接收消息的 Ra
2024-11-26 OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程. 2. Tess4J 2.1 简介 Tesseract-OCR ,Google维护的开源OCR引擎,支持Java,Python等语言调用。而Tess4J 封装了Tesseract-OCR ,支持Java调用 Tesseract-OCR特点: Tesseract支持U
2024-11-26基础知识 ReentrantLock分为公平锁和非公平锁。 通过lock获取锁,unLock释放锁。 Note1:(双向链表。初始的时候head和tail都指向Null,之后添加新节点的时候会创建一个空Node,head和tail都指向这个空Node代表初始化完成。 尾插法入队通过移动尾结点tail往前移动,出队通过head节点往前移动。当Head节点和tail指向同一个Node时代表没有阻塞队列中没有等待的线程) 之后唤醒的时候也会通过tail尾结点一直像后遍历拿到真正处于等待状态的Node线
2024-11-26基于springboot+vue实现的二手电子产品回收系统 (源码+L文)4-098 系统总体架构是整个研究的基础,它描述了系统的功能模块划分、技术选型以及系统组件之间的关系,为读者提供了对系统设计和实现的整体认识。 系统总体架构的核心在于功能模块的划分。系统划分为用户管理、商品管理、订单管理等主要功能模块,每个模块负责相应的业务逻辑。例如,用户管理模块包括用户注册、登录、个人信息管理等功能,商品管理模块包括商品发布、浏览、购买等功能,订单管理模块包括订单创建、支付、物流跟踪等功能。这些
2024-11-26