-
后端开发中如何区分业务逻辑与存储逻辑?
后端三层架构:业务逻辑与数据访问逻辑的界限 后端开发中,常见的controller、service和dao三层架构,在controller和service层的分离相对清晰,主要通过分离业务逻辑和展示逻辑实现,例如将消息队列(MQ)、HTTP、RPC等与业务逻辑解耦。然而,service层和dao层之间的界限,特别是引入manager层后,常常让开发者感到困惑。 Python后端开发中,业务逻辑有时会混杂在model层中,例如usermodel.is_super()这样的业务...
作者:wufei123 日期:2025.04.07 分类:JAVA 43 -
前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?
问题描述: 在使用若依分离版框架开发过程中,前端使用POST请求向后端传递数据,后端却接收到了NULL值。 前端代码: //修改订单状态 export function updatorderstatus(id,status){ const data={ id, status } return request({ url:"/business/orderinfo/updatestate&quo...
作者:wufei123 日期:2025.04.07 分类:JAVA 24 -
后端开发中如何区分业务逻辑和非业务逻辑,并合理进行分层设计?
后端分层架构:业务逻辑与非业务逻辑的清晰界限 后端开发中,常见的controller、service和dao三层架构并非总是足够清晰。本文探讨如何在service和dao层,甚至引入manager层后,有效区分业务逻辑与非业务逻辑,从而构建更合理的分层设计。 业务逻辑与非业务逻辑的界定 业务逻辑直接关联业务需求,而非业务逻辑则负责底层操作,例如数据访问、数据校验等。两者界限模糊常常导致代码混乱。 数据操作的封装: 例如,UserManager.delete() 和 D...
作者:wufei123 日期:2025.04.07 分类:JAVA 55 -
Tomcat下多个应用如何共享语言环境:应用间LocaleContextHolder同步的实现方法
tomcat多应用共享语言环境:实现应用间localecontextholder同步 如何在同一Tomcat服务器上部署的多个应用之间共享语言环境?本文将解决在单个Tomcat实例中运行的应用A和应用B之间同步LocaleContextHolder的问题。当应用A更改语言环境时,如何使应用B的LocaleContextHolder也随之更新? 挑战: 应用A和应用B在同一Tomcat服务器上运行,但它们是独立的应用,各自拥有独立的运行环境和上下文。因此,直接访问应用A的Lo...
作者:wufei123 日期:2025.04.07 分类:JAVA 48 -
Spring Boot项目启动时如何正确加载外部JAR包?
spring boot项目启动时如何加载外部jar包? 在构建一个复杂的spring boot应用时,为了满足不同客户的需求并提高代码的可维护性,常常需要将项目拆分成多个模块,每个模块打包成独立的jar包。本文将讨论如何在一个主spring boot项目启动时,动态加载这些外部的jar包。 文中提到了一个场景:一个spring boot项目用于扫描二维码查询信息,支持树、道路、物品等多种类型。为了解耦,将核心功能模块打包成一个jar包,提供基础服务,而不同类型的信息处理则分别...
作者:wufei123 日期:2025.04.07 分类:JAVA 45 -
如何通过自然语言处理在MySql和ElasticSearch中高效查询人员数据?
利用自然语言处理技术高效检索人员信息 本文探讨如何利用自然语言处理(NLP)技术,在MySQL和Elasticsearch数据库中高效地检索人员数据。例如,通过输入“25岁以下,在北京工作的男性”这样的自然语言查询,快速筛选出符合条件的人员信息(年龄0-25岁,工作地点北京,性别男)。 假设您的项目基于Java Spring Boot开发。 之前的方法可能存在准确性不足的问题。本文提出一种更优方案:利用OpenAI API将人员数据和自然语言查询都转换为向量,再通过Ela...
作者:wufei123 日期:2025.04.07 分类:JAVA 30 -
Spring Boot服务运行一段时间后SSH连接失败,如何排查?
Spring Boot应用运行一段时间后SSH连接中断的排查指南 近期遇到一个棘手问题:Spring Boot服务运行一段时间后,SSH连接和服务端口(例如8082)的telnet连接均告失败。重启服务后能暂时解决,但问题会反复出现。本文将深入分析可能原因及排查步骤。 首先,telnet连接服务端口失败表明服务可能已停止运行。 使用ps命令确认服务进程是否存在。如果进程已消失,则需检查服务日志,寻找导致服务崩溃的错误信息,尤其关注OutOfMemoryError (OOM...
作者:wufei123 日期:2025.04.06 分类:JAVA 24 -
在使用Spring Cloud Alibaba搭建微服务架构时,是否必须将各个模块放在一个父子工程结构中进行管理?
Spring Cloud Alibaba微服务:独立模块开发的优势 在构建基于Spring Cloud Alibaba的微服务架构时,如何组织项目模块是一个关键问题。本文探讨了将各个微服务模块组织成独立项目而非父子工程的优势。 单体工程的局限性 传统的父子工程结构虽然方便管理,但在大型微服务项目中存在一些不足。例如,所有模块代码都集中在一个仓库中,增加了代码访问的复杂性,也降低了安全性。 开发者可能无意中访问或修改不属于自己负责的模块代码,导致潜在的错误和安全风险。 此...
作者:wufei123 日期:2025.04.06 分类:JAVA 32 -
如何将海康威视摄像头SDK的视频流推送到前端Vue项目中进行实时播放?
海康威视摄像头SDK视频流在Vue项目中的实时播放 本文介绍如何将海康威视摄像头sdk获取的视频流,通过流媒体服务器(zlmediakit),最终在vue前端项目中实时播放。 整个过程不依赖云视频服务,摄像头直接连接至本地电脑。 系统架构与实现思路 系统采用三层架构: 海康威视摄像头及后端(Spring Boot): 使用海康威视SDK获取摄像头视频流。 流媒体服务器(ZLMediaKit): 作为中间件,接收后端推送的视频流,并进行转发。 前端(Vue):...
作者:wufei123 日期:2025.04.06 分类:JAVA 34 -
Spring Boot Redis中,keys()方法返回乱码如何解决?
Spring Boot Redis 中 keys() 方法返回乱码的根本原因及解决方案 在 Spring Boot 应用中集成 Redis 时,使用 redisTemplate.keys() 方法获取键值经常出现乱码问题。这主要是因为 RedisTemplate 默认的键序列化方式与实际键的类型不匹配导致的。本文将详细分析此问题并提供有效的解决方案。 问题根源在于,开发者通常使用自定义序列化器(例如 FastJson2JsonRedisSerializer)对 Redis...
作者:wufei123 日期:2025.04.06 分类:JAVA 48