自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 收藏
  • 关注

原创 Java开发时出现的问题---语言特性与基础机制陷阱

都会创建新对象,若在循环中频繁拼接,会产生大量临时对象,触发 GC 频繁回收,导致性能损耗。可将堆中字符串入池,但 JDK 7 后常量池移至堆中,过度调用会导致常量池膨胀,甚至引发。(线程安全),其内部通过可扩容的字符数组减少对象创建。创建相同字符串,会浪费常量池优化机会,增加内存占用。(堆内存对象)的内存地址不同,若频繁用。(JDK 7 前)或堆内存溢出。存储字符),每次修改(如。

2025-08-04 23:48:20 600

原创 前后端交流

Spring Boot(后端)与 Vue(前端)的交流主要通过实现,具体来说是后端提供 RESTful API 接口,前端通过 Axios 等工具发送请求并处理响应。

2025-08-03 23:51:54 343

原创 SpringAI的使用

首先定义一个工具类,用@Tool@Component// 模拟查询天气的工具函数@Tool("查询指定城市的天气,参数为城市名称(如北京)")// 实际场景中可调用第三方天气 APIreturn String.format("城市:%s,日期:%s,天气:晴朗,温度:25℃", city, date);统一抽象:屏蔽不同 AI 服务的差异,切换服务只需改配置;简化集成:通过 Spring Boot starters 快速接入 AI 模型和向量存储;增强能力。

2025-08-03 23:48:34 813

原创 微服务的使用

服务启动时注册到 Nacos,从 Nacos 配置中心拉取配置;客户端通过 Spring Cloud Gateway 调用服务,网关路由到目标服务;服务间通过 Feign(同步)或 RabbitMQ(异步)通信,LoadBalancer 负责负载均衡;若服务调用失败,Resilience4j 触发熔断降级;跨服务事务由 Seata 保证一致性;全链路监控通过 Zipkin 和 Prometheus 实现。

2025-08-03 23:45:36 1003

原创 SpringBoot相关注解

在 Spring Boot 开发中,注解是简化配置、实现特定功能的核心方式。

2025-08-02 23:52:34 372

原创 SpringBoot启动项目详解

调用所有和的run():接收参数(解析后的命令行参数)。:直接接收原始参数。自动配置:通过和中的配置类,根据依赖和环境自动配置组件(如 DataSource、Web 服务器)。嵌入式服务器:在容器刷新阶段自动创建并启动(如 Tomcat),无需手动部署到外部服务器。事件驱动:通过和在启动各阶段发布事件,支持扩展(如自定义监听器处理特定阶段逻辑)。简化配置:默认扫描路径、默认配置文件、默认 Bean 注册,减少手动配置。main() → SpringApplication实例化 → run()

2025-08-02 23:51:17 955

原创 MyBatis与MySQL

MyBatis是 “中间层”,专注于 Java 代码与 SQL 的映射,解决 “对象 - 关系” 不匹配问题,简化数据库操作的代码编写。MySQL是 “数据存储层”,专注于数据的存储和 SQL 的执行,是 MyBatis 操作的目标数据库之一。实际开发中,MyBatis 负责 “怎么调用 SQL”,而 MySQL 负责 “怎么执行 SQL 并返回数据”,两者配合完成从 Java 对象到数据库数据的全流程操作。

2025-08-02 23:48:38 1599

原创 JAVA结合AI

Java 与 AI 的结合正从技术赋能走向价值重构。通过性能优化、工具链完善和开发流程革新,Java 在企业级 AI 服务、边缘计算、智能制造等领域展现出不可替代的优势。尽管面临 Python 生态的竞争,Java 凭借成熟的工程化能力和跨平台特性,正在构建 “训练 - 推理 - 部署” 的全栈解决方案。未来,随着 AIGS、智能体等技术的成熟,Java 有望在 AI 时代重新定义企业级软件开发的范式,成为连接传统 IT 系统与智能未来的核心桥梁。

2025-08-01 23:48:23 1066

原创 AI+向量化

要理解 Java 如何结合 AI 与向量化,我们需要从以及四个维度展开。

2025-08-01 23:45:04 967

原创 Java向量化

Java 中向量化存储的核心是通过连续内存结构(数组)或专用库类高效组织数据,并结合向量运算优化性能。数据规模:小规模用double[]或 Apache Commons Math;大规模用 ND4J。稀疏性:高维稀疏向量用。性能需求:利用 JVM 自动向量化或 Java Vector API 手动优化。通过合理的存储方式和工具选择,可显著提升 Java 中向量处理的效率。

2025-08-01 23:41:14 636

原创 Java响应式编程

Java 响应式编程通过异步数据流提供了高效处理大量并发请求的能力,适合构建非阻塞、低延迟的应用程序。主要应用场景包括微服务、实时数据处理和高并发系统。

2025-07-28 23:43:05 538

原创 Java异常处理

你能够通过继承Exception// 使用自定义异常throw new CustomException("数据不能为空");

2025-07-27 23:25:53 610

原创 J2EE模式---服务层模式

服务层模式通过引入一个中间层来处理业务逻辑,实现了业务逻辑的集中管理和复用,是企业级应用架构中的重要组成部分。它在提高代码可维护性、可测试性和支持多渠道应用等方面具有显著优势,但需要合理设计以避免过度复杂。在实际开发中,服务层模式常与其他模式(如 DAO 模式、DTO 模式)结合使用,并可借助 Spring 等框架提供的事务管理、依赖注入等功能简化实现。

2025-07-27 23:24:03 1035

原创 J2EE模式---表现层集成模式

表现层集成模式提供了一套解决用户界面与后端系统集成问题的有效方案,通过合理选择和应用这些模式,可以构建出可维护、可扩展且性能优良的应用系统。在实际开发中,应根据应用类型、集成复杂度、性能需求等因素综合考虑,选择合适的模式组合,并遵循最佳实践以避免常见问题。表现层集成模式是现代企业级应用开发中不可或缺的一部分,尤其在微服务架构和多渠道应用的背景下,其重要性更加凸显。

2025-07-26 23:00:59 661

原创 J2EE模式---数据访问对象模式

数据访问对象模式通过抽象数据访问逻辑,实现了业务层与数据持久层的解耦,是企业级应用中数据访问层的标准设计模式。它在提高代码可维护性、可测试性和支持多数据源等方面具有显著优势,但需要合理设计以避免过度复杂。在实际开发中,DAO 模式常与其他模式(如工厂模式、单例模式)结合使用,并可借助 ORM 框架进一步简化实现。

2025-07-26 00:08:22 1401

原创 J2EE模式---组合实体模式

组合实体模式通过将多个相关实体封装为一个更高层次的对象,简化了客户端与这些实体的交互,降低了系统复杂度。它在企业级应用中特别有用,尤其是在需要管理多个实体之间的事务一致性和提高性能的场景。在实际开发中,合理使用组合实体模式可以帮助我们构建更加清晰、高效的系统架构,但需要注意避免过度设计,确保组合实体的结构和接口符合业务需求。

2025-07-24 11:10:16 655

原创 J2EE模式---业务代表模式

业务代表模式通过引入一个中间层(业务代表)来处理表示层与业务层之间的通信,有效降低了两者之间的耦合度,提高了系统的可维护性和可扩展性。它在分布式系统、异构系统集成等场景中尤为有用,能够隐藏服务调用的复杂性并支持服务的动态切换。在实际开发中,合理使用业务代表模式可以帮助我们构建更加灵活、可维护的系统,但需要注意控制业务代表的复杂度,避免引入不必要的抽象。

2025-07-24 11:09:18 906

原创 J2EE模式---服务定位器模式

服务定位器模式通过中央注册表管理服务的创建和获取,实现了服务使用与创建的解耦,适用于需要集中管理依赖的场景。它在简化客户端代码、复用服务实例等方面有优势,但相比依赖注入,在测试友好性和代码侵入性上稍逊。实际开发中,应根据场景选择:简单场景或集成旧系统时用服务定位器,复杂应用或追求低耦合时优先考虑依赖注入。合理使用服务定位器模式可以有效提升系统的可维护性和灵活性。

2025-07-23 19:06:56 1029

原创 J2EE模式---视图助手模式

视图助手模式通过将视图层中的复杂逻辑提取到独立的助手类中,使视图代码更加简洁、易于维护。它是 MVC 架构中的重要补充,能够有效分离展示逻辑和业务逻辑,提高代码的可复用性和可测试性。在实际开发中,合理使用视图助手模式可以帮助我们构建更加清晰、高效的视图层,但需要注意控制视图助手的复杂度,避免引入不必要的抽象。

2025-07-23 19:04:41 1068

原创 J2EE模式---拦截过滤器模式

拦截过滤器模式通过在请求处理前后插入过滤器,实现了通用功能与核心业务逻辑的分离,提高了代码的可维护性和复用性。它是 Web 应用和企业级应用开发中的重要模式,被广泛应用于各种框架和系统中。在实际开发中,合理使用拦截过滤器模式可以帮助我们构建更加灵活、可维护的系统,但需要注意控制过滤器的数量和复杂度,避免影响系统性能。

2025-07-22 13:55:34 1105

原创 J2EE模式---前端控制器模式

前端控制器模式通过集中处理所有请求,简化了应用程序的请求处理机制,提高了系统的可维护性和可扩展性。它是 J2EE 和 Web 应用开发中的重要模式,被广泛应用于各种 MVC 框架中。在实际开发中,合理使用前端控制器模式可以帮助我们构建结构清晰、易于维护的应用系统,但需要注意控制前端控制器的复杂度,避免成为系统瓶颈。

2025-07-22 13:17:33 1132

原创 J2EE模式---MVC模式

MVC 模式是 J2EE 开发中的核心架构模式,通过将应用程序分为模型、视图和控制器三个独立组件,实现了代码的解耦和复用。它在 Web 应用开发中尤为重要,能够提高团队协作效率、简化代码维护和增强系统扩展性。在实际开发中,应根据项目规模和复杂度选择合适的 MVC 框架,并遵循最佳实践以确保代码质量。

2025-07-20 22:18:33 755

原创 Java行为型模式---解释器模式

解释器模式通过定义语言的文法表示和解释器,实现了对语言句子的解释执行。它在简单语言解析场景中非常有用,能够将语法规则的定义和解释分离,提高代码的可维护性和可扩展性。然而,对于复杂的语法结构,解释器模式的实现会变得非常繁琐,此时应考虑使用专业的解析工具。在实际开发中,解释器模式常用于数学表达式计算、配置文件解析、简单脚本语言实现等场景。

2025-07-20 22:16:09 771

原创 Java行为型模式---中介者模式

中介者模式通过引入一个中介对象来封装对象间的交互,将多对多的依赖关系转化为一对多的关系,从而降低系统的耦合度,提高可维护性和可扩展性。它在需要集中控制对象交互的场景中尤为有用,如 GUI 系统、消息队列、多人游戏等。合理使用中介者模式可以使系统结构更加清晰,但需注意控制中介者类的复杂度,避免其成为系统的瓶颈。

2025-07-19 23:41:27 890

原创 Java行为型模式---访问者模式

访问者模式通过将对象操作的定义与对象本身分离,实现了对不同类型元素的操作扩展,同时保持了元素类的稳定性。它特别适用于需要对稳定对象结构定义多种操作的场景,通过新增访问者类即可轻松添加新操作,符合开闭原则。在实际开发中,访问者模式常用于编译器设计、XML 处理、报表生成等领域。合理使用访问者模式可以提高系统的可扩展性和可维护性,但需要注意控制类的数量和维护访问者与元素之间的关系。

2025-07-19 23:40:35 919

原创 Java行为型模式---状态模式

状态模式通过将对象的状态相关行为封装在独立的状态类中,并将状态转换逻辑集中管理,实现了对象行为的动态变化。它在不修改对象类的前提下,允许对象在内部状态改变时改变其行为,是处理复杂状态转换场景的理想选择。在实际开发中,状态模式常用于工作流系统、游戏开发、状态机实现等领域。合理使用状态模式可以提高系统的可维护性和可扩展性,但需要注意控制类的数量和状态转换逻辑的复杂度。

2025-07-19 23:39:25 1093

原创 Java行为型模式---备忘录模式

备忘录模式通过将对象状态的保存和恢复封装在独立的备忘录类中,实现了对象状态管理的解耦和封装。它在不破坏对象封装性的前提下,允许对象在需要时恢复到之前的状态,是实现撤销 / 重做功能、事务回滚、游戏存档等场景的理想选择。在实际开发中,合理使用备忘录模式可以提高系统的可维护性和用户体验,但需要注意控制内存消耗和管理复杂度。

2025-07-17 10:29:22 932

原创 Java行为型模式---命令模式

命令模式通过将请求封装为对象,实现了请求的发送者和接收者之间的解耦,使系统更具灵活性和可扩展性。它支持命令的排队、记录、撤销等功能,广泛应用于需要处理多种请求、支持撤销操作或异步执行的场景。在实际开发中,命令模式常用于 GUI 系统、事务管理、任务调度等领域。合理使用命令模式可以提高代码的可维护性和复用性,但需要注意控制类的数量和实现复杂度。

2025-07-17 10:28:16 863

原创 Java行为型模式---责任链模式

责任链模式通过将请求的处理者组织成一条链,实现了请求的发送者和接收者之间的解耦。它允许动态地组合处理者,使系统更加灵活和可扩展。在实际开发中,责任链模式常用于多级审批、请求过滤、事件处理等场景。合理使用责任链模式可以提高代码的可维护性和复用性,但需要注意链的长度和处理顺序对系统性能的影响。

2025-07-15 20:16:31 574

原创 Java行为型模式---迭代器模式

迭代器模式通过分离聚合对象的存储逻辑和遍历逻辑,实现了代码的解耦和复用。它在 Java 集合框架中应用广泛,是处理集合遍历的标准方式。合理使用迭代器模式可以简化客户端代码,隐藏聚合对象的内部结构,并支持灵活的遍历方式。在实际开发中,除非需要自定义聚合结构或特殊遍历逻辑,否则优先使用 Java 内置的Iterator接口及其实现。

2025-07-15 20:15:39 828

原创 Java行为型模式---模板方法模式

定义算法的骨架,包含模板方法和抽象方法。

2025-07-14 23:35:49 990

原创 Java行为型模式---观察者模式

观察者模式(Observer Pattern)是一种行为型设计模式,其核心思想是定义对象间的一种一对多依赖关系,使得当一个对象状态发生改变时,所有依赖它的对象都会得到通知并自动更新。观察者模式是一种非常实用的设计模式,它通过定义对象间的一对多依赖关系,实现了对象间的松耦合通信。在实际开发中,观察者模式常用于事件处理系统、实时数据监控、消息传递等需要状态变化通知的场景。不过,自 Java 9 起,这些类已被标记为过时,推荐使用自定义实现或第三方库(如 Guava)。,其中被观察的对象称为。

2025-07-13 17:52:48 586

原创 Java行为型模式---策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,其核心思想是定义一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户端,符合开闭原则(对扩展开放,对修改关闭)。策略模式是一种非常实用的设计模式,它通过将算法封装并使其可互换,提高了代码的灵活性和可维护性。在实际开发中,策略模式常用于电商折扣系统、支付方式选择、游戏 AI 等需要动态选择算法的场景。

2025-07-13 17:51:47 449

原创 Java结构型模式---享元模式

享元模式是一种通过对象共享来优化资源利用的设计模式,特别适用于处理大量细粒度对象的场景。在实际开发中,该模式常用于图形渲染、游戏开发、缓存系统等需要高效管理资源的领域。享元模式(Flyweight Pattern)是一种结构型设计模式,其核心思想是通过共享对象来减少内存使用和提高性能。该模式通过将对象的状态分为。(不可共享的变化部分),并缓存已创建的对象,从而避免重复创建相同的对象。(可共享的不变部分)和。

2025-07-13 17:49:46 555

原创 Java结构型模式---外观模式

外观模式(Facade Pattern)是一种结构型设计模式,其核心思想是为复杂的子系统提供一个统一、简化的接口,使客户端通过这个接口可以更方便地使用子系统的功能,而无需直接与子系统中的多个组件交互。外观模式隐藏了系统的复杂性,将客户端与子系统解耦。外观模式是一种非常实用的设计模式,它通过提供一个统一的接口,简化了复杂系统的使用方式,降低了客户端与子系统之间的耦合度。在实际开发中,外观模式常用于构建易于使用的 API、封装第三方库或遗留系统等场景。

2025-07-13 17:48:42 368

原创 Java结构型模式---组合模式

组合模式是一种非常实用的设计模式,它通过树形结构表示 "部分 - 整体" 关系,使客户端可以统一处理单个对象和组合对象。组合模式是一种结构型设计模式,其核心思想是将对象组合成树形结构以表示 "部分 - 整体" 的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性,即在使用过程中无需区分是单个对象还是组合对象。- 在抽象组件中声明所有管理子组件的方法,叶子组件和复合组件都实现这些方法。- 在抽象组件中只声明公共方法,管理子组件的方法只在复合组件中声明。上述示例采用的是安全式实现。

2025-07-11 23:54:33 662

原创 Java结构型模式---桥接模式

桥接模式是一种结构型设计模式,其核心思想是将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过组合的方式建立两个类之间的联系,而不是通过继承,从而降低了抽象和实现之间的耦合度。桥接模式是一种非常实用的设计模式,它通过分离抽象和实现,使系统更加灵活、可扩展。在实际开发中,桥接模式常用于需要处理多个变化维度的场景,如跨平台应用、图形界面系统等。

2025-07-10 22:39:23 757

原创 Java结构型模式---装饰者模式

装饰者模式是一种结构型设计模式,其核心思想是动态地将责任附加到对象上,从而实现对对象功能的扩展。与继承相比,装饰者模式提供了更灵活的替代方案,它通过组合的方式在运行时为对象添加新功能,而无需修改其原有结构。装饰者模式是一种非常实用的设计模式,它通过组合而非继承的方式为对象提供了灵活的功能扩展能力。在实际开发中,装饰者模式常用于需要动态扩展对象功能的场景,如 Java I/O 流、GUI 组件等。

2025-07-09 23:29:15 649

原创 Java结构型模式---适配器模式

适配器模式是一种结构型设计模式,其核心思想是将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式就像一个 "转换器",将两个不兼容的接口进行适配。适配器模式是一种非常实用的设计模式,它通过引入一个适配器类来解决接口不兼容的问题,使得原本不能一起工作的类可以协同工作。对象适配器通过持有适配者类的实例并实现目标接口来实现适配。类适配器通过继承适配者类并实现目标接口来实现适配。双向适配器允许两个不兼容的接口可以互相适配。

2025-07-08 17:47:23 1073

原创 Java结构型模式---代理模式

代理模式是一种非常实用的设计模式,它通过引入代理对象来控制对真实对象的访问,提供了增强功能、控制访问和提高性能的能力。在实际开发中,动态代理和 CGLIB 代理更为常用,它们提供了更灵活的代理机制。代理模式是一种结构型设计模式,其核心思想是通过创建一个代理对象来控制对另一个真实对象的访问。代理对象在客户端和真实对象之间起到中介作用,允许在不改变真实对象的前提下,对其进行增强或控制。静态代理是指在编译时就已经确定代理类和被代理类的关系,代理类需要手动编写。

2025-07-08 17:45:27 799

Java核心技术详解:从基础语法到并发编程及Spring框架的全面解析

内容概要:本文详细介绍了Java语言的核心特点、集合框架、并发编程、数据库相关知识、Redis、Linux基础、以及Spring和Spring Cloud框架的相关内容。Java语言的核心特点包括面向对象、平台无关性、强类型、垃圾自动管理、支持多线程、安全性、丰富的库、编译与解释并存、支持分布式、健壮性和开源社区支持。Java集合框架部分涵盖了List、Set、Map等常用集合类及其特性,如ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等,并介绍了它们的实现原理和性能特点。并发编程部分探讨了线程、线程池、锁机制等内容,强调了线程安全的重要性。数据库部分详细讲解了MySQL的存储引擎、索引、事务、锁机制等。Redis部分介绍了其数据类型、持久化机制、内存淘汰策略、分布式锁等。Linux部分涵盖了命令行操作、系统日志、安全配置等内容。Spring和Spring Cloud部分则介绍了Spring框架的核心特性(如IoC、AOP)、Spring MVC的工作流程、Spring Boot的自动配置原理,以及Spring Cloud的微服务组件(如Eureka、Ribbon、Hystrix等)。 适合人群:具备一定编程基础,尤其是对Java、数据库、Linux和微服务框架感兴趣的开发者。 使用场景及目标: 1. **Java语言和集合框架**:帮助开发者深入了解Java语言的核心特性和集合框架的使用场景,提升代码编写和优化能力。 2. **并发编程**:适用于需要理解和实现多线程、线程池和锁机制的开发人员,

2025-07-25

【铁路智能运维管理】基于Spring AI的铁路设备维修系统设计与实现:集成ZhiPu AI对话模型和RAG功能

内容概要:本文档介绍了基于“铁路智能运维管理系统”的Spring AI应用开发,重点展示了AI在“铁路设备维修”模块和专业知识顾问中的应用。开发环境需满足Spring Boot 3.2.x及以上版本和JDK 17及以上的要求。文档详细描述了如何引入必要的依赖项,如ZhiPu AI,并配置相关参数。具体实现包括普通聊天对话、检索增强生成(RAG)和工具调用三大功能。聊天对话通过配置ChatClient实现,RAG利用Redis Stack进行矢量数据库查询,而工具调用则通过ToolConfig类实现信息检索和采取行动。最后,文档指出当前项目的不足之处,如知识库庞大时工具回调受影响等问题。 适合人群:具备一定Java编程基础,尤其是熟悉Spring Boot框架的研发人员,特别是从事铁路智能运维系统开发的技术人员。 使用场景及目标:①了解如何在Spring Boot项目中集成AI功能;②掌握通过ZhiPu AI实现聊天对话、检索增强生成和工具调用的具体步骤;③探索AI在铁路设备维修管理和专业知识顾问中的应用场景。 其他说明:此项目仅展示了Spring AI的主要功能,相关业务逻辑尚不完善,且存在一些尚未解决的问题,如知识库庞大时工具回调的影响等。建议开发者在实践中不断优化和完善系统功能。

2025-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除