- 博客(15)
- 收藏
- 关注
原创 深入解析Java中的synchronized关键字
Java中的synchronized是保证线程安全的关键机制,通过锁对象实现同步,控制多线程对共享资源的访问。本文解析了其三种使用方式(实例方法、静态方法、代码块)及底层原理(Monitor机制、锁升级过程)。synchronized具有原子性、可见性、有序性等特性,并支持锁优化如自旋锁、锁消除和锁粗化。文章还对比了synchronized与Lock的区别,并提供了线程安全单例模式等实际应用示例,同时指出需注意性能瓶颈和死锁问题。
2025-09-23 19:48:19
854
原创 地块信息在java后端的处理与转换
本文探讨了地块坐标信息在后端处理的关键技术。系统接收前端以GeoJSON格式传递的多边形地块数据(包含闭合环的经纬度坐标点),通过JSONObject临时存储。为高效存储和查询空间数据,介绍了将GeoJSON转换为WKT字符串再存入数据库Geometry字段的方法,利用空间数据库特有的空间函数和索引优势。文中详细说明了转换流程:先解析GeoJSON为Geometry对象,再转为WKT格式,最终实现空间数据的高效存储与管理。这种处理方式既保留了原始地理信息,又充分发挥了空间数据库的查询性能。
2025-09-22 17:33:52
774
原创 JeecgBoot权限控制系统解析:以具体模块为例
JeecgBoot权限系统基于RBAC模型,通过Shiro框架实现多层次权限控制。系统采用"模块:功能:操作"的权限标识设计(如business:breedingPlots:add),通过@RequiresPermissions注解实现后端接口权限校验。权限配置流程包括菜单权限设置、角色授权和用户关联角色三步骤。最佳实践建议遵循统一的权限标识规范,强调后端校验的必要性,并注意权限变更的实时性问题。该系统实现了细粒度的权限管控,包括菜单、按钮和数据权限,确保系统安全性。
2025-09-20 21:51:33
1061
原创 关于Spring Bean之间的循环依赖
本文分析了SpringBoot项目GbzntProject中的循环依赖问题。问题表现为ProjectService与ProjectInfoService相互依赖导致的循环链。根源在于@Service类之间通过@Autowired直接注入对方实例。解决方案推荐使用Setter注入+@Lazy注解,通过三级缓存机制延迟加载打破循环。文章强调循环依赖本质上是不良设计的结果,建议从架构层面避免过度耦合,遵循"单一职责"原则。虽然技术上有多种解决方案,但重构代码结构才是最佳实践。
2025-09-19 18:35:25
1185
原创 SpringAI学习(1)
SpringAI为Java开发者提供了便捷的AI集成方案,本文介绍了其快速入门方法:首先配置SpringBoot环境和DeepSeek API密钥,通过OpenAiChatModel实现基础对话功能;然后探讨了ChatClient接口的使用、角色预设实现和流式响应处理;最后解析了底层ChatModel接口设计。通过示例代码展示了如何在Spring项目中快速集成AI能力,为后续深入学习SpringAI奠定了基础。
2025-06-09 20:39:24
1255
原创 如何用ollama本地部署大模型(以deepseek为例)
Ollama 是一个开源工具,允许用户在 本地计算机 上轻松运行、管理和部署大型语言模型(LLMs),如 Llama 3、Mistral、Gemma、DeepSeek 等。它提供了简单的命令行界面(CLI),让开发者无需复杂配置即可在本地体验 AI 模型。2. Ollama 的核心特点开箱即用支持一键下载和运行模型(如 ollama run llama3)。自动处理依赖项(如 GPU 加速)。✅ 丰富的模型库。
2025-04-26 22:14:53
565
原创 Langchain4j学习(1)
LangChain4j 是 Java 生态的 LangChain 实现,旨在帮助开发者轻松集成 大语言模型(LLM)(如 OpenAI、DeepSeek、Llama3)到 Java 应用中。它提供了统一的 API,支持 对话模型(Chat)、嵌入(Embedding)、检索增强生成(RAG)、智能代理(Agent) 等功能,适用于企业级 AI 应用,简单来说就是将java与大模型集合并进行运用。
2025-04-26 21:54:16
1975
原创 RabbitMQ学习(2)
本文将详细介绍RabbitMQ中交换机(Exchange)的概念、类型及其作用,并结合Spring Boot框架,演示如何在项目中集成RabbitMQ,实现不同类型交换机的配置与使用。
2025-04-10 22:33:05
1829
原创 RabbitMQ学习(1)
在当今分布式系统架构中,消息队列(MQ)技术扮演着至关重要的角色。作为最流行的开源消息代理软件之一,RabbitMQ以其可靠性、灵活性和易用性赢得了广大开发者的青睐。
2025-04-09 16:47:40
947
原创 redis在springboot中做缓存操作的两种方法
redis在springboot中做缓存操作的两种方法,包括区别,应用方法余实现的简单过程
2025-04-07 21:33:34
2262
原创 MySQL、Redis、MongoDB 的核心区别及其典型应用场景
做了几个小项目,用到了这几个数据库,但是是比较模糊的,不清楚他们的区别,这篇博客用来整理区别。
2025-04-06 21:00:41
1007
1
原创 jsp+sevlet页面完成后启动显示500刷新后显示400找不到servlet
也没有问题,问题究竟出在哪里,然后我就去查资料,发现java与tomcat版本不适配也会这样,所以我一看,啊,我用的是jdk17,tomcat8果然不适配,改成jdk1.8和tomcat8会适配,然后我改了之后还是不行,又去查资料,发现jdk版本改了之后你的servlet-api的依赖也要改,jdk11以下的要用。一开始以为是路径写错了,一直在改tomcat路径发现没用,又去看web.xml。,我仔细检查之后发现原来,你依赖改了之后。2.你的jdk版本与servlet-api会不会适配。
2025-04-02 15:21:28
354
原创 在springboot中调用pytorch模型获取结果
我现在在写一个工作室的项目其中就包括一个面瘫结果检测的部分,就是输入一张图片,获取患者面瘫的等级,首先我们已经在kaggle上训练并且下载一个模型,现在就是如何把我们的springboot项目和他结合起来,首先我尝试了引入ai.djl的方法,搞了好几周,要不然就是依赖版本问题要不然是什么初始化的问题,所以没有解决出来,同时我们项目的性能要求没有那么高,所以就想直接调用在python里写好的方法,在java里运行这个代码。2. Spring Boot控制器。使用绝对路径替代相对路径。
2025-03-30 16:42:19
561
原创 拉取一个项目时找不到maven边栏同时不能用maven引入项目依赖
去网上找了很多博客但是都要我去重新配置maven和右击打开maven但是都没有,此时我灵机一动想到了一个办法,可能是idea没有识别出pom.xml于是我们就可以打开pom.xml(如果是微服务架构打开那个parent项目的pom.xml),先复制所有代码,再把这个pom.xml删掉,重新建一个pom.xml,把代码复制上去,再在空白处右击就发现。今天在git上拉取项目的时候发现了问题,发现找不到maven边栏同时不能用maven打开项目,如下。我们的maven回来了!
2025-03-22 16:55:53
282
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅