- 博客(1014)
- 资源 (16)
- 收藏
- 关注
原创 Spring Framework 7.020.Spring 表达式语言(SpEL)Spring Expression Language
Spring表达式语言(SpEL)概述 Spring表达式语言(SpEL)是Spring框架提供的一种功能强大的表达式语言,主要特点包括: 核心特性: 支持字面量表达式、布尔/关系运算符、正则表达式和类表达式 提供属性、数组、集合和映射的访问能力 支持方法调用、构造函数调用和bean引用 表达式求值: 通过ExpressionParser解析表达式 使用EvaluationContext进行求值上下文管理 提供SimpleEvaluationContext和StandardEvaluationContext
2025-07-12 08:59:05
67
原创 Spring Framework 7.019.验证、数据绑定和类型转换(Validation, Data Binding, and Type Conversion)
Spring框架提供了Validator接口实现对象验证,通过Errors对象报告验证失败。示例展示了如何验证Person对象,使用ValidationUtils辅助类检查空值和年龄范围。对于复杂对象(如包含Address的Customer),可以组合多个Validator实现。Spring的验证机制不限于Web层,支持全局验证和本地自定义逻辑。数据绑定使用DataBinder和BeanWrapper,而类型转换可通过PropertyEditor或更现代的core.convert包实现。这些功能共同构成了S
2025-07-11 08:53:45
368
原创 Spring Framework 7.018.资源(Resources)
摘要 Spring Framework 的 Resource 接口(org.springframework.core.io.Resource)提供了比 Java 标准 URL 更强大的资源访问能力,支持类路径、ServletContext 等多种资源类型。主要特性包括:检查资源存在性(isExists)、获取输入流(getInputStream)、转换为文件或URL等。Spring提供了多种Resource实现:UrlResource(URL包装)、ClassPathResource(类路径)、FileSy
2025-07-10 13:53:52
218
原创 Spring Framework 7.017.BeanFactory API
Spring框架比较了BeanFactory和ApplicationContext两种容器:BeanFactory提供基础IoC功能,适合与第三方框架集成;而ApplicationContext包含更多高级功能(如生命周期管理、注解处理等),是大多数应用的首选。ApplicationContext会自动注册后处理器,而使用DefaultListableBeanFactory时需手动配置。文章通过代码示例展示了如何在普通BeanFactory中手动添加处理器,并建议除非需要精细控制,否则应优先使用功能更全面的
2025-07-10 13:52:53
105
原创 Spring Framework 7.016.ApplicationContext 的附加功能(Additional Capabilities of the ApplicationContext)
Spring Framework的ApplicationContext扩展了BeanFactory,提供了国际化消息处理、资源加载、事件发布和分层上下文管理等附加功能。其中,MessageSource接口支持国际化消息解析,通过ResourceBundleMessageSource等实现类加载不同语言资源文件。开发者可通过编程或声明式配置使用这些功能,如示例展示了如何通过资源文件定义消息,并通过MessageSource接口获取本地化消息。ApplicationContext还支持消息参数替换和层级查找,遵
2025-07-08 08:53:24
151
原创 Spring Framework 7.015.上下文加载时织入器(Registering a LoadTimeWeaver)
Spring Framework 支持加载时织入(LTW),在类加载时进行字节码增强,实现@Configurable注解(对非Spring对象依赖注入)和AspectJ切面织入。可通过XML配置context:load-time-weaver或Java注解@EnableLoadTimeWeaving启用,并支持定制LoadTimeWeaver实现。需要根据应用环境(Web容器/独立应用)配置合适的类加载器,可能需Java代理启动支持。LTW为Spring提供了更灵活的依赖注入和AOP能力,但配置较为复杂。
2025-07-08 08:51:54
133
原创 Spring Framework 7.014.Spring 环境抽象(Environment Abstraction)
Spring框架的环境抽象(Environment Abstraction)通过Environment接口整合了属性源(PropertySources)和配置文件(Profiles)功能。配置文件允许按环境(如开发/生产)分组管理bean定义,可通过XML的profile属性或Java/Kotlin的@Profile注解实现。激活方式包括JVM参数、环境变量或编程设置。属性源则统一了各种配置来源(如.properties文件、环境变量等)的访问方式,支持带默认值的属性获取和类型转换。这一抽象机制为应用提供了
2025-07-07 08:54:59
84
原创 Spring Framework 7.013.基于 Java 的容器配置(Java-based Container Configuration)
本文介绍了Spring框架中基于Java的容器配置方法,核心内容包括: 核心概念:使用@Configuration注解类作为bean定义源,@Bean注解方法用于实例化和管理对象 容器初始化:通过AnnotationConfigApplicationContext实例化Spring容器,支持以编程方式注册配置类 配置方式: 简单构造:直接传入配置类 编程构建:无参构造后通过register()方法注册配置类 组件扫描:使用@ComponentScan或scan()方法自动发现组件 注解使用: @Config
2025-07-06 10:48:36
12
原创 Spring Framework 7.012.使用 JSR 330 标准注解(Using JSR 330 Standard Annotations)
Spring Framework支持JSR-330标准注解(如@Inject、@Named)实现依赖注入,需添加jakarta.inject依赖。@Inject可替代@Autowired用于字段、方法和构造器注入,支持Provider延迟获取。@Named用于限定依赖名称或替代@Component注解。与Spring注解相比,JSR-330缺少部分功能如注解组合能力,建议复杂场景仍使用Spring原生注解。配置类路径扫描后,可混合使用标准注解与Spring组件管理。
2025-07-06 10:47:54
15
原创 Spring Framework 7.011.类路径扫描和受管组件(Classpath Scanning and Managed Components)
Spring框架提供了类路径扫描机制来简化组件注册,无需XML配置。通过使用@Component及其衍生的stereotype注解(@Repository、@Service、@Controller),可以自动检测并注册bean定义。这些注解支持元注解和组合注解功能,允许自定义属性。开发者只需在配置类中添加@ComponentScan指定扫描路径,或使用XML配置<context:component-scan>,即可实现自动组件注册。这种方式减少了显式配置,提高了开发效率,同时通过特定注解增强了代
2025-07-06 10:46:56
12
原创 Spring Framework 7.010.基于注解的容器配置(Annotation-based Container Configuration)
本文介绍了Spring框架中基于注解的容器配置。主要内容包括: 注解配置支持:Spring通过注解(如@Autowired)实现自动装配,支持JSR-250和JSR-330标准注解。 配置方式:可使用XML配置(context:annotation-config/)或AnnotationConfigApplicationContext隐式注册后处理器。 @Autowired使用:详细说明如何在构造函数、setter方法、任意方法和字段上使用@Autowired进行依赖注入,包括Java和Kotlin代码示例
2025-07-06 10:44:59
11
原创 Spring Framework 7.009.容器扩展点(Container Extension Points)
Spring容器可以通过BeanPostProcessor接口扩展,允许开发者在bean实例化前后插入自定义逻辑。该接口包含postProcessBeforeInitialization和postProcessAfterInitialization两个回调方法,可用于修改或代理bean实例。多个处理器可通过Ordered接口控制执行顺序,但编程式注册的处理器会优先于自动检测的处理器执行。需要注意的是,BeanPostProcessor本身及其直接引用的bean不能被AOP自动代理。文中以打印bean信息的处
2025-07-06 10:44:13
6
原创 Spring Framework 7.009.容器扩展点(Container Extension Points)
Spring容器可以通过BeanPostProcessor接口扩展,允许开发者在bean实例化前后插入自定义逻辑。该接口包含postProcessBeforeInitialization和postProcessAfterInitialization两个回调方法,可用于修改或代理bean实例。多个处理器可通过Ordered接口控制执行顺序,但编程式注册的处理器会优先于自动检测的处理器执行。需要注意的是,BeanPostProcessor本身及其直接引用的bean不能被AOP自动代理。文中以打印bean信息的处
2025-07-06 10:43:36
5
原创 Spring Framework 7.008.Bean 定义继承(Bean Definition Inheritance)
摘要:Spring Framework的Bean定义继承机制允许子定义继承父Bean的配置(如属性、构造参数等),并可选择性覆盖或添加新值,实现配置模板化。通过XML配置时,使用parent属性指定父Bean,子Bean可继承类、属性等配置。若父Bean无类定义需标记为abstract,防止被实例化。ApplicationContext默认预实例化单例Bean,抽象模板Bean需明确设置abstract=true以避免被实例化。该机制显著减少了重复配置工作。
2025-07-06 10:42:49
9
原创 Spring Framework 7.007.自定义 Bean 的特性(Customizing the Nature of a Bean)
本文介绍了Spring框架中自定义Bean特性的三种主要方式:生命周期回调、Aware接口和其他自定义接口。重点讲解了生命周期回调的实现方法,包括初始化回调(InitializingBean/afterPropertiesSet)和销毁回调(DisposableBean/destroy),并推荐使用JSR-250注解(@PostConstruct/@PreDestroy)或XML/Java配置的init-method/destroy-method来避免与Spring直接耦合。 文章还介绍了默认初始化和销毁方
2025-07-06 10:42:16
9
原创 Spring Framework 7.006.Bean 作用域(Bean Scopes)
Spring提供了6种Bean作用域:单例(singleton,默认)、原型(prototype)、请求(request)、会话(session)、应用(application)和WebSocket。单例作用域在每个Spring容器中只创建一个实例;原型作用域每次请求都创建新实例;其余4种作用域仅适用于Web应用环境。需注意单例bean依赖原型bean时,依赖仅在初始化时注入一次。Web作用域需额外配置RequestContextListener或RequestContextFilter。开发者可根据需求选
2025-07-06 09:48:05
323
原创 Spring Framework 7.005.依赖关系(Dependencies)
本文介绍了Spring框架中的依赖注入(DI)概念及其实现方式。主要内容包括: 依赖注入概述:通过容器控制对象依赖关系,实现控制反转(IoC),使代码更简洁易测试。 两种注入方式: 构造函数注入:通过构造函数参数传递依赖 Setter方法注入:通过无参构造后调用setter方法注入 构造函数参数解析的三种方法: 类型匹配(type属性) 索引匹配(index属性) 参数名称匹配(需编译时保留参数名或使用@ConstructorProperties) 实际应用:演示了如何在XML配置中定义Bean及其依赖关系
2025-07-06 09:47:03
129
原创 Spring Framework 7.004.Bean 概述(Bean Overview)
Spring IoC容器中的Bean管理摘要 Spring IoC容器通过配置元数据管理一个或多个bean,这些元数据可以转换为BeanDefinition对象。bean定义包含类名、行为配置、依赖项和其他属性设置等关键信息。容器支持多种bean配置方式: 命名与别名:每个bean有唯一标识符,可通过id或name属性指定,并支持别名机制使不同组件能通过不同名称引用同一bean。 实例化方式:容器通过反射调用构造函数或静态工厂方法创建bean,支持普通类和嵌套类的管理,不局限于JavaBean规范。 属性配
2025-07-06 09:46:19
235
原创 Spring Framework 7.003.容器概述(Container Overview)
Spring IoC容器概述摘要 Spring IoC容器(ApplicationContext)是Spring框架的核心,负责管理应用中各组件(Bean)的创建、配置和依赖关系。容器通过读取配置元数据来获取指令,配置方式包括: 基于注解的组件类 Java配置类(使用@Configuration/@Bean) XML配置文件 XML配置使用<beans>和<bean>元素定义组件,可通过ClassPathXmlApplicationContext加载。配置可以模块化,通过<im
2025-07-04 14:32:24
152
原创 Spring Framework 7.002.Spring IoC 容器与 Bean 简介(Introduction to the Spring IoC Container and Beans)
摘要:Spring框架的核心技术包括IoC容器和AOP技术。IoC容器通过依赖注入实现控制反转,提供Bean管理和配置功能。ApplicationContext作为BeanFactory的扩展,增加了企业级特性。文档详细介绍了容器配置、Bean定义、依赖注入、作用域等核心概念,以及基于注解的配置方式。AOP框架支持80%的AOP需求,并可集成AspectJ。此外还涵盖环境抽象、容器扩展点等高级特性,为Java企业应用开发提供全面支持。(150字)
2025-07-04 14:30:42
12
原创 Spring Framework 7.001.Spring 框架概述(Spring Framework Overview)
Spring 框架是企业级 Java 开发的完整解决方案,支持 Java 17+及多种架构。它始于2003年,采用模块化设计,核心是依赖注入容器,并支持Servlet/WebFlux等Web框架。最新6.0版本基于Jakarta EE 9+,兼容主流服务器。Spring强调向后兼容性、API设计和代码质量,提供灵活的开发选择。建议初学者通过Spring Boot快速入门。Spring生态还包括Security、Data等子项目,共同构成完整的开发生态系统。开发者可通过GitHub贡献代码,或在Stack O
2025-07-04 14:29:11
16
原创 Spring AI-98.工具迁移指南
摘要: Spring AI工具迁移指南涵盖向量存储、模型服务、智能体工具链及云服务的迁移策略。关键步骤包括:1)向量存储的数据导出、格式转换与批量导入;2)模型服务的接口适配与参数映射;3)智能体多工具注册与上下文传递优化;4)云服务配置与成本调优。建议分阶段实施,结合自动化测试(单元/集成/负载测试)和灰度发布,保留旧版回滚能力。需重点关注数据一致性、性能监控及团队培训,确保平滑过渡。
2025-06-19 09:02:02
32
原创 Spring AI-97.升级说明
Spring AI 版本升级指南摘要: 本文详细介绍了从1.x到2.2版本的升级要点。1.x到2.0涉及模块化重构、API统一和配置变更,需调整依赖和代码。2.0到2.1新增云原生支持、优化可观测性和智能体架构。2.2版本则扩展了向量存储支持、引入流式API并优化性能。升级建议包括:检查依赖冲突、更新测试策略、参考官方文档和社区支持。各版本需适配对应的Spring Boot和Java版本,向量存储支持也随版本迭代不断扩展。
2025-06-18 08:53:27
32
原创 Spring AI-96.云绑定指南 (Cloud Bindings)
本文介绍了Spring AI的云绑定(Cloud Bindings)功能,它实现了AI组件与云平台的无缝集成。核心特性包括自动配置、多云平台支持(AWS、Azure、Google Cloud等)以及向量存储、模型服务等组件的参数绑定。文章详细说明了AWS、Azure和Google Cloud的集成示例,涵盖配置方式(环境变量/K8s Secret)和代码实现。此外,还介绍了自定义绑定、安全实践(密钥管理、成本控制)和故障转移策略。最后列举了支持的云平台列表,指出该机制简化了多云部署,未来将扩展更多云原生服务
2025-06-18 08:53:12
25
原创 Spring AI-95.高效智能体开发指南(Building Effective Agents)
Spring AI-95高效智能体开发指南摘要 本文介绍了基于Spring AI框架构建高效智能体的关键方法和实践。智能体通过整合工具调用、决策引擎和对话管理三大核心组件,实现复杂任务的自动化处理。主要内容包括: 核心组件:工具调用器支持外部API访问,决策引擎负责任务流程控制,对话管理器维护上下文。 开发模式: 工具优先型:适用于频繁调用外部服务的场景 向量存储增强型:适合知识库问答系统 多工具协同型:处理需要组合多个工具的复杂任务 优化策略:参数验证、错误处理、批量调用、缓存机制和异步处理等提升性能的方
2025-06-18 08:53:01
36
原创 Spring AI-94.提示工程模式指南 (Prompt Engineering Patterns)
Spring AI提示工程模式指南摘要 Spring AI提供多种提示工程模式,帮助开发者优化AI模型响应质量。核心模式包括: 零样本提示 - 直接指令式查询,适用于简单问答 少样本提示 - 提供示例引导格式,适合严格结构化输出 思维链提示 - 分步推理解决复杂问题 上下文管理 - 采用滑动窗口或摘要处理长文本限制 提示模板 - 参数化复用常见场景提示结构 输出控制 - 通过显式指令确保格式一致性 多模态提示 - 结合文本与图像输入 最佳实践包括迭代优化提示、敏感内容控制和本地化适配。这些模式能显著提升生成
2025-06-18 08:52:47
153
原创 Spring AI-93.集成 Testcontainers 指南
Spring AI集成Testcontainers指南:通过spring-ai-testcontainers模块快速启动向量存储容器(Qdrant/Chroma/Weaviate/Milvus)进行自动化测试。提供依赖配置、容器实例化示例及测试用例代码,支持自定义参数、容器共享和Spring自动装配。该方案简化了向量存储集成验证流程,适用于单元测试和CI/CD环境,确保功能可靠性的同时降低配置成本。注意容器启动顺序、资源清理和版本兼容性等问题。
2025-06-18 08:52:37
27
原创 Spring AI-92.集成 Docker Compose 指南
Spring AI 通过 Docker Compose 简化向量存储服务集成,支持自动连接 Chroma、Qdrant、OpenSearch 和 Weaviate 等服务。开发者只需添加依赖并运行匹配的容器,Spring AI 即自动配置连接,也可手动覆盖参数。该功能显著简化了本地开发环境搭建,支持快速原型验证和微服务部署,让开发者更专注于业务逻辑而非基础设施配置。
2025-06-18 08:52:27
19
原创 Spring AI-91.可观测性指南(Observability)
Spring AI 深度整合 Spring 生态的可观测性能力,为聊天模型、嵌入模型、向量存储等核心组件提供全面的监控支持。系统自动记录调用耗时、token用量等关键指标,并通过低基数/高基数标签区分维度。开发者可精细控制敏感数据(如提示内容、响应结果)的导出,通过属性配置实现安全监控。该机制支持与OpenTelemetry等主流追踪系统对接,帮助优化AI应用性能与稳定性,同时规避数据泄露风险。
2025-06-18 08:52:18
38
原创 Spring AI-90.集成 Weaviate 向量存储指南
Spring AI 集成 Weaviate 向量存储指南: Weaviate 是一款开源向量数据库,支持存储数据对象、向量嵌入及元数据过滤。Spring AI 通过 WeaviateVectorStore 实现无缝集成,适用于构建语义检索系统。 核心功能: 支持 Docker 本地部署或云端服务 提供自动配置依赖(starter)和手动配置选项 可自定义文档类名、一致性级别等参数 支持文档增删改查及相似性搜索 内置元数据过滤功能(支持字符串表达式和 DSL 构建器) 典型应用场景包括:语义搜索、推荐系统、知
2025-06-18 08:52:03
36
原创 Spring AI-89.集成 Weaviate 向量存储指南
Spring AI 与 Weaviate 的集成提供了可扩展的向量存储解决方案,适合构建大规模语义搜索和推荐系统。通过自动配置和 Weaviate 的分布式架构,开发者可轻松实现高吞吐、低延迟的向量检索,结合元数据过滤和原生 GraphQL 查询,满足复杂业务场景需求。Weaviate 是开源向量数据库,支持存储数据对象、向量嵌入及元数据过滤,Spring AI 通过。实现集成,适用于构建可扩展的语义检索系统。确保服务运行并监听端口 8080。
2025-06-18 08:51:53
30
原创 Spring AI-88.集成 Typesense 向量存储指南
Spring AI集成Typesense向量存储指南:开源低延迟搜索引擎与Spring AI的无缝对接。通过TypesenseVectorStore实现高效向量存储和检索,支持Docker本地部署(默认端口8108)或云端服务。核心配置包括集合名称、向量维度(默认1536)、服务地址和API密钥。提供自动/手动两种Bean配置方式,支持文档添加、相似性搜索(可设置topK和阈值)及元数据过滤查询(字符串表达式或DSL构建器)。还能通过原生客户端执行高级操作,如创建集合和管理索引。典型应用场景包括知识库构建和
2025-06-18 08:51:43
20
原创 Spring AI-87.集成 SAP HANA Cloud 向量存储指南
Spring AI集成SAP HANA Cloud向量存储指南: 环境准备 需SAP HANA Cloud试用账户,启用向量引擎 添加spring-ai-starter-vector-store-hana和嵌入模型依赖 核心配置 设置数据库连接URL、用户名、密码 指定向量存储表名,可选自动初始化表结构 使用流程 文档自动切分并存储为向量 支持相似性搜索(如topK=3) 可结合LLM实现RAG应用 注意事项 需确保向量维度与模型匹配 大规模数据需优化分区和索引 该方案适用于需要SAP生态整合的企业级RAG
2025-06-18 08:51:30
25
原创 Spring AI-86.集成 Redis 向量存储指南
Spring AI 整合 Redis 向量存储,支持高效向量检索和元数据过滤。需部署 Redis Stack 并配置 HNSW 索引,通过 RedisVectorStore 实现文档存储与相似性搜索。核心功能包括:自动/手动配置索引、批量插入策略优化(TOKEN_COUNT/FIXED_SIZE)、基于表达式或 DSL 的元数据过滤。使用时需注意维度匹配(如 OpenAI 嵌入需 1536 维)和内存管理。典型场景包括文档检索、知识库问答等,通过 Redis 高性能实现低延迟向量查询。
2025-06-18 08:51:18
54
原创 Spring AI-85.集成 Qdrant 向量存储指南
摘要: Spring AI通过QdrantVectorStore集成开源向量数据库Qdrant,支持高效相似性检索与元数据过滤。核心步骤包括:1)部署Qdrant并配置连接参数(主机、端口、集合名);2)通过自动或手动方式初始化向量存储;3)执行文档添加、相似性搜索(支持阈值过滤)及复杂元数据查询(表达式/DSL构建器)。Qdrant的HNSW算法、分片机制和多种相似度度量(如余弦)可优化性能,需注意集合维度匹配与安全认证。该方案适用于RAG系统、语义搜索等场景,结合Spring AI简化了高性能向量检索的
2025-06-18 08:51:07
42
原创 Spring AI-84.集成 Pinecone 向量存储指南
Spring AI与Pinecone集成指南摘要 Spring AI通过PineconeVectorStore集成高性能云向量数据库Pinecone,支持文档存储与相似性搜索。关键步骤包括: 1️⃣ 环境准备 注册Pinecone并创建索引,获取API Key 添加spring-ai-starter-vector-store-pinecone和嵌入模型依赖 2️⃣ 核心配置 必填API Key和索引名称 可选命名空间(免费版不支持)和超时设置 3️⃣ 操作示例 自动/手动配置VectorStore Bean
2025-06-18 08:50:57
19
原创 Spring AI-83.集成 PGvector 向量存储指南
Spring AI 集成 PGvector 向量存储指南摘要 PGvector 作为 PostgreSQL 的向量扩展,可通过 Spring AI 的 PgVectorStore 实现高效向量存储与检索。核心步骤包括: 环境准备:需 PostgreSQL 安装 vector 扩展,并创建包含 embedding 字段的表结构 配置集成:通过 spring-ai-starter-vector-store-pgvector 依赖和 YAML 参数(如索引类型、距离度量)快速接入 功能实现:支持文档批量写入、相似
2025-06-18 08:50:45
30
原创 Spring AI-82.集成 Oracle Database 23ai 向量搜索指南
Spring AI 集成 Oracle 23ai 向量搜索指南摘要 本文介绍了 Spring AI 与 Oracle Database 23ai 向量搜索功能的集成方案。通过 OracleVectorStore 实现文档嵌入存储和相似性检索,详细说明了环境配置、核心属性设置(如索引类型、相似度度量)、自动/手动 Bean 配置方法,以及数据操作(文档添加、相似性搜索)、元数据过滤等关键功能。同时提供了索引选择(IVF/HNSW)和性能优化建议,如向量归一化、精度控制等。开发者可通过简单配置快速实现高效向量搜
2025-06-17 08:53:06
23
原创 Spring AI-81.集成 OpenSearch 向量存储指南
Spring AI 集成 OpenSearch 指南摘要: OpenSearch 作为开源的搜索分析引擎,通过 OpenSearchVectorStore 实现向量存储与相似性搜索功能。配置需指定集群 URI、索引名和相似性函数(如 cosinesimil),支持自动初始化索引。核心功能包括文档添加、相似性搜索(可设置 topK 和阈值)以及基于元数据的过滤查询(支持表达式或 DSL 构建)。性能优化可通过手动创建索引(定义 dense_vector 字段)实现。适用于构建低延迟 AI 应用,需注意 AWS
2025-06-17 08:52:50
25
原创 Spring AI-80.集成 Neo4j 向量存储指南
Spring AI 集成 Neo4j 向量存储指南摘要 Neo4j 作为开源图数据库,通过 Spring AI 的 Neo4jVectorStore 支持向量搜索功能。关键要点: 环境配置 要求 Neo4j 5.15+,支持向量索引 添加 spring-ai-starter-vector-store-neo4j 依赖 核心功能 自动/手动配置向量索引和节点标签 支持相似性搜索(余弦或欧式距离) 元数据过滤查询(字符串表达式或DSL构建器) 性能优化 使用 HNSW 算法创建向量索引 结合图结构特性提升检索效
2025-06-17 08:52:39
36
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人