Spring(1)—Spring 框架:Java 开发者的春天
一、关于Spring
1.1 简介
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。它提供了全面的基础设施支持,使开发者能够专注于业务逻辑而非底层细节。
Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。
Spring官网: https://spring.io/
1.2 诞生与发展
诞生
关于Spring的发展起源要回溯到2002年,当时正是Java EE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。这时候有一个美国的小伙子认为 EJB 太过臃肿,并不是所有的项目都需要使用 EJB 这种大型框架,应该会有一种更好的方案来解决这个问题。
他为了证明自己的想法是正确的,在2001年10月写了一本书《Expert One-on-One J2EE》,介绍了当时Java企业应用程序开发的情况,并指出了 Java EE 和 EJB 组件框架中存在的一些主要缺陷。在这本书中,他提出了一个基于普通 Java 类和依赖注入的更简单的解决方案。在书中,他展示了如何在不使用 EJB 的情况下构建高质量、可扩展的在线座位预留系统。为了构建应用程序,他编写了超过 30,000 行的基础结构代码,项目中的根包命名为 com.interface21
,所以人们最初称这套开源框架为 interface21,这就是 Spring 的前身。
这个小伙子是谁呢?他就是大名鼎鼎的 Rod Johnson(下图),Rod Johnson 在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位,更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位,反正就是牛逼哄哄的人物。但是现在 Rod Johnson 已经离开了 Spring(2012 年 Rod Johnson 宣布他将要离开 Spring Source ),成为了一个天使投资人,同时也是多个公司的董事,早已走上人生巅峰。
Spring 框架的发展历程可以追溯到2003年,当时由 Rod Johnson 创建并发布了第一个版本。Spring 的初衷是为了简化企业级 Java 应用程序的开发,尤其是解决当时企业级应用开发中普遍存在的复杂性和耦合度高的问题。随着时间的推移,Spring 不断发展壮大,成为了一个完整的生态系统,涵盖了从核心的依赖注入和面向切面编程到 Web 应用开发、数据访问、安全、测试等多个领域。
发展
1. 初始版本(2003年)
- 发布:Spring 1.0 正式发布。
- 特点:主要集中于依赖注入(DI)和面向切面编程(AOP),为 Java 开发者提供了一个简洁的替代方案,减少了对 EJB 的依赖。
2. 稳定和成熟(2004-2006年)
- Spring 2.0(2006年) :引入了对注解的支持,使得配置更加灵活,简化了开发过程。
- Spring MVC:增强了 Web 应用开发的功能,提供了强大的 Model-View-Controller 支持。
3. 集成与扩展(2007-2010年)
- Spring 3.0(2009年) :引入了 RESTful Web 服务支持和 Java 5 的注解功能,进一步增强了框架的灵活性和易用性。
- 与其他技术的集成:Spring 开始与 Hibernate、JPA、Quartz 等流行技术无缝集成,扩展了其生态系统。
4. 云计算和微服务时代(2011年至今)
- Spring 4.0(2013年) :引入了对 Java 8 的支持,增加了对异步编程和 WebSocket 的支持,适应现代应用需求。
- Spring Boot(2014年) :发布了 Spring Boot,极大地简化了应用的开发和部署流程,促进了微服务架构的流行。
- Spring Cloud(2015年) :为构建分布式系统提供了一整套解决方案,帮助开发者更轻松地管理微服务。
5. 持续演进
- Spring 5.0(2017年) :引入了对反应式编程的支持,适应了现代应用对高并发和异步处理的需求。
- 生态系统的扩展:随着 Kubernetes 和云原生技术的发展,Spring 继续演进以适应新的开发趋势。
1.3 特点
Spring 框架以其灵活性、模块化和扩展性著称,它具有许多显著的特点,这些特点使得 Spring 成为 Java 开发者广泛使用的开发框架之一。以下是 Spring 框架的一些主要特点:
-
控制反转(IoC)容器:
- Spring提供了一个强大的IoC容器,用于管理对象的创建、生命周期、配置和其他对象的依赖关系。
-
依赖注入(DI) :
- Spring支持通过构造函数、setter方法和注解等方式实现依赖注入,从而降低组件之间的耦合度。
-
面向切面编程(AOP) :
- Spring AOP提供了一种声明式的方式来实现横切关注点,如日志记录、事务管理、安全性等。
-
事务管理:
- Spring提供了一个全面的事务管理抽象,支持编程式和声明式事务管理,并且可以与不同的事务管理器(如JTA、JPA等)集成。
-
模块化和分层架构:
- Spring框架是高度模块化的,由多个模块组成,每个模块解决特定的问题,支持分层架构,如表示层、业务层、持久层等。
-
数据访问抽象:
- Spring提供了对各种数据访问技术的集成,包括JDBC、Hibernate、JPA、MyBatis等,并且简化了数据库操作。
-
Web支持:
- Spring MVC是一个功能丰富的Web框架,用于构建Web应用程序和RESTful Web服务。Spring还支持WebSocket、Servlet、Portlet等Web技术。
-
安全性:
- Spring Security提供了一个全面的安全框架,用于保护基于Spring的应用程序。
-
测试支持:
- Spring提供了对各种测试框架的集成,如JUnit和TestNG,以及模拟对象的支持,使得单元测试和集成测试更加容易。
-
集成:
- Spring提供了对各种中间件、消息传递系统(如JMS、AMQP)和其他企业级技术的集成。
-
配置管理:
- Spring支持多种配置方式,包括XML、Java注解和Java配置类,提供了灵活的配置选项。
-
REST和微服务:
- Spring Boot和Spring Cloud提供了对构建RESTful服务和微服务架构的支持。
-
响应式编程:
- Spring 5引入了对响应式编程模型的支持,Spring WebFlux是一个响应式的Web框架,用于构建非阻塞的、事件驱动的服务。
-
云原生支持:
- Spring Cloud提供了对云平台的集成,支持服务发现、配置管理、负载均衡、断路器等云原生特性。
-
社区和生态系统:
- Spring拥有一个活跃的社区和庞大的生态系统,提供了大量的扩展库和第三方集成。
-
持续更新和维护:
- Spring框架定期发布新版本,不断引入新特性和改进,以适应不断变化的技术环境。
1.4 应用场景
- 企业级应用
- 传统企业应用:Spring 可用于构建大型企业级应用,支持复杂的业务逻辑和数据处理。
- Spring MVC:用于开发基于 Web 的企业应用,提供 MVC 架构,便于处理请求和响应。
- 微服务架构
- Spring Boot:通过简化配置,快速构建和部署微服务,适用于需要快速迭代和高可扩展性的项目。
- Spring Cloud:提供服务发现、负载均衡、配置管理等工具,方便微服务之间的协调和管理。
- RESTful API
- 构建 API 服务:利用 Spring MVC 构建 RESTful API,支持多种数据格式(如 JSON、XML)以供前端或其他服务调用。
- 数据访问层
- 集成 ORM 框架:通过 Spring Data 或与 Hibernate、JPA 等 ORM 框架的集成,简化数据库操作和数据访问层的开发。
- 批处理应用
- Spring Batch:专门用于处理大量数据的批处理应用,支持分片处理、事务管理和作业调度等功能。
- Web 应用
- 企业级 Web 应用:适合开发高性能、可扩展的 Web 应用,支持用户认证、权限管理和事务处理。
- 单页应用(SPA)后端
- 与前端框架结合:作为后端服务支持 React、Angular 或 Vue 等单页应用,提供数据接口和业务逻辑处理。
- 云原生应用
- 云平台部署:支持云服务(如 AWS、Azure)的集成,使得应用能够在云环境中无缝运行。
- 安全性要求高的应用
- Spring Security:用于处理用户认证和权限管理,适合需要高安全性的应用场景。
- IoT 应用
- 物联网系统:可以用于开发物联网应用,处理设备通信和数据采集等需求。
二、Spring体系结构
2.1 概览
Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。
Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
2.2 核心容器
核心容器由 spring-core,spring-beans,spring-context,spring-context-support和spring-expression(SpEL,Spring 表达式语言,Spring Expression Language)等模块组成,它们的细节如下:
- spring-core 模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
- spring-beans 模块提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。
- context 模块建立在由 core和 beans 模块的基础上建立起来的,它以一种类似于 JNDI 注册的方式访问对象。Context 模块继承自 Bean 模块,并且添加了国际化(比如,使用资源束)、事件传播、资源加载和透明地创建上下文(比如,通过 Servelet 容器)等功能。Context 模块也支持 Java EE 的功能,比如 EJB、JMX 和远程调用等。ApplicationContext 接口是 Context 模块的焦点。spring-context-support 提供了对第三方集成到 Spring 上下文的支持,比如缓存(EhCache, Guava, JCache)、邮件(JavaMail)、调度(CommonJ, Quartz)、模板引擎(FreeMarker, JasperReports, Velocity)等。
- spring-expression 模块提供了强大的表达式语言,用于在运行时查询和操作对象图。它是 JSP2.1 规范中定义的统一表达式语言的扩展,支持 set 和 get 属性值、属性赋值、方法调用、访问数组集合及索引的内容、逻辑算术运算、命名变量、通过名字从 Spring IoC 容器检索对象,还支持列表的投影、选择以及聚合等。
它们的完整依赖关系如下图所示:
对应的源码模块如下:
2.3 数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:
(注:JDBC=Java Data Base Connectivity,ORM=Object Relational Mapping,OXM=Object XML Mapping,JMS=Java Message Service)
- JDBC 模块提供了 JDBC 抽象层,它消除了冗长的 JDBC 编码和对数据库供应商特定错误代码的解析。
- ORM 模块提供了对流行的对象关系映射 API 的集成,包括 JPA、JDO 和 Hibernate 等。通过此模块可以让这些 ORM 框架和 spring的其它功能整合,比如前面提及的事务管理。
- OXM 模块提供了对 OXM 实现的支持,比如 JAXB、Castor、XML Beans、JiBX、XStream 等。
- JMS 模块包含生产(produce)和消费(consume)消息的功能。从 Spring 4.1 开始,集成了 spring-messaging 模块。
- 事务模块为实现特殊接口类及所有的 POJO 支持编程式和声明式事务管理。(注:编程式事务需要自己写 beginTransaction()、commit()、rollback() 等事务管理方法,声明式事务是通过注解或配置由 spring 自动处理,编程式事务粒度更细)
对应的源码模块如下:
2.4 Web模块
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
-
Web 模块提供面向 web 的基本功能和面向 web 的应用上下文,比如多部分(multipart)文件上传功能、使用 Servlet 监听器初始化 IoC 容器等。它还包括 HTTP 客户端以及 Spring 远程调用中与 web 相关的部分。
-
Web-MVC 模块为 web 应用提供了模型视图控制(MVC)和 REST Web服务的实现。Spring 的 MVC 框架可以使领域模型代码和 web 表单完全地分离,且可以与 Spring 框架的其它所有功能进行集成。
-
Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
-
Webflux 模块: Spring WebFlux 是 Spring Framework 5.x中引入的新的响应式web框架。与Spring MVC不同,它不需要Servlet API,是完全异步且非阻塞的,并且通过Reactor项目实现了Reactive Streams规范。Spring WebFlux 用于创建基于事件循环执行模型的完全异步且非阻塞的应用程序。
对应的源码模块如下:
2.5 Test模块
Test 模块:Spring 支持 Junit 和 TestNG 测试框架,而且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。
包含Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient。
对应的源码模块如下:

2.6 其他
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:
- AOP 模块提供了面向方面(切面)的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,从而使实现功能的代码彻底的解耦出来。使用源码级的元数据,可以用类似于.Net属性的方式合并行为信息到代码中。
- Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。
- Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
- Messaging 模块为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
- 测试模块支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。
对应的源码模块如下:
三、Spring下载
3.1 官方下载
进入如下链接,依次点开:Artifacts–>snapshot–>org–>springgframework–>spring
https://repo.spring.io/ui/repos/tree/General/snapshot
选择需要的版本
打开后选择后缀为-dist.zip的下载即可
Spring的解压文件中有几个文件夹:docs、libs、schema。
docs :该文件夹下包含Spring的相关文档、开发指南及API参考文档。
libs :所有的 Spring 库都在这里,在里面我们会发现每个jar包都有三个不同后缀的文件。
***.jar :字节码jar包
***-javadoc.jar :文档
***-sources.jar :源码
schema :所有的约束(xsd)文件都在这里。
附上一键点击直达地址:
https://repo.spring.io/ui/native/snapshot/org/springframework/spring/
3.2 Maven引入
要使用Spring,现在一般都是使用maven导入spring的jar包去使用。而不用去专门下载jar包再导入。
在Maven项目中添加如下依赖,引入Sping
<dependency><groupId>org.springframework</groupId><artifactId>spring</artifactId><version>5.2.6.RELEASE</version><type>pom</type>
</dependency>
相关文章:

Spring(1)—Spring 框架:Java 开发者的春天
一、关于Spring 1.1 简介 Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。它提供了全面的基础设施支持,使开发者…...

MT1401-MT1410 码题集 (c 语言详解)
目录 MT1401归并排序 MT1402堆排序 MT1403后3位排序 MT1404小大大小排序 MT1405小大大小排序II MT1406数字重排 MT1407插入 MT1408插入 MT1409旋转数组 MT1410逆时针旋转数组 MT1401归并排序 c 语言实现代码 #include <stdio.h>// merge two subarrays void merge(int a…...

React基础语法
1.React介绍 React由Meta公司开发,是一个用于构建Web和原生交互界面的库 1.1 React优势 相较于传统基于DOM开发的优势 1.组件化的开发方式 2.不错的性能 相较于其他前端框架的优势 1.丰富的生态 2.跨平台支持 1.2React的时长情况 全球最流行,大厂…...

《Kadane‘s Algorithm专题:最大和连续子数组》
🚀 博主介绍:大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师! 🚀 🌟 在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷…...
Vue基础(5)
ref属性 在 Vue2 中,ref是一个特殊的属性,用于在模板中获取对某个 DOM 元素或子组件的引用。通过 ref,我们可以在 JavaScript 代码中直接访问该 DOM 元素或组件实例。 示例: <template><div><input ref"inputField&quo…...

面对复杂的软件需求:5大关键策略!
面对软件需求来源和场景的复杂性,有效地管理和处理需求资料是确保项目成功的关键,能够提高需求理解的准确性,增强团队协作和沟通,降低项目风险,提高开发效率。反之,项目可能面临需求理解不准确、团队沟通不…...

使用Git进行版本控制的最佳实践
文章目录 Git简介基本概念仓库(Repository)提交(Commit)分支(Branching) 常用命令初始化仓库添加文件提交修改查看状态克隆仓库分支操作合并分支推送更改 最佳实践使用有意义的提交信息定期推送至远程仓库使…...
【入门1】顺序结构 - B2025 输出字符菱形
题目描述 用 * 构造一个对角线长 55 个字符,倾斜放置的菱形。 输入格式 没有输入要求。 输出格式 如样例所示。用 * 构成的菱形。 输入输出样例 输入 #1 输出 #1**** ********* <C> : #include<stdio.h>int main() {printf(" *\n ***\n**…...
C#DLL热加载|动态替换
我有一个项目 开始取数据和结束数据部分是一样的,但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…...
数据库三大范式
目录 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) Oracle三大范式是数据库设计中的规范化过程,旨在减少数据冗余、提高数据一致性和数据库性能。这三大范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 第一范式(1NF) 数据库表的每一列都是不可分割…...

【linux】fdisk磁盘分区管理
介绍 fdisk是一个磁盘分区管理工具,可以用来创建、删除、修改和查看磁盘分区。 fdisk一般都是交互式使用,基础语法: fdisk /dev/sdd。进入交互窗口后,有一些选项,需要了解下: 选项含义n创建新分区p查看磁盘的分区情…...

asp.net core 入口 验证token,但有的接口要跳过验证
asp.net core 入口 验证token,但有的接口要跳过验证 在ASP.NET Core中,你可以使用中间件来验证token,并为特定的接口创建一个属性来标记是否跳过验证。以下是一个简化的例子: 创建一个自定义属性来标记是否跳过验证: public clas…...

[mysql]聚合函数GROUP BY和HAVING的使用和sql查询语句的底层执行逻辑
#GROUP BY的使用 还是先从需求出发,我们现在想求员工表里各个部门的平均工资,最高工资 SELECT department_id,AVG(salary) FROM employees GROUP BY department_id 我们就会知道它会把一样的id分组,没有部门的就会分为一组,我们也可以用其他字段来分组,我们想查询不同jb_id…...

从数据中台到数据飞轮:实现数据驱动的升级之路
从数据中台到数据飞轮:实现数据驱动的升级之路 随着数字化转型的推进,数据已经成为企业最重要的资产之一,企业普遍搭建了数据中台,用于整合、管理和共享数据;然而,近年来,数据中台的风潮逐渐减退…...
小记:SpringBoot中,@Alisa和@ApiModelProperty的区别
在 Spring Boot 中,Alias和ApiModelProperty 这两个注解用于不同的目的。 Alias Alias是一个用于定义别名的注解,通常用于 Bean 属性的别名功能,这样在使用某些框架(如 JPA 或 Jackson)时,可以将一个属性名…...

信捷 PLC C语言 定时器在FC中的使用
传统梯形图的定时器程序写起来简单,本文用C语言写定时器的使用。 定时器在c语言中使用,和普通梯形图中使用的区别之一是既有外部条件,也有内部条件。 1.建全局变量 2.建立FC POU 这个是功能POU程序。 这里的Enable是内部条件 3.调用包含定…...

k8s常用对象简介
Pod Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod 是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度&…...

【Kaggle | Pandas】练习2:索引,选择和分配
文章目录 数据总表1、读取列2、读取某列的第几行的值3、第一行数据4、读取列中前10个值5、读取索引标签为1 、 2 、 3 、 5和8的记录6、包含索引标签为0 、1 、10和100的记录的country 、province 、 region_1和region_2列7、 前 100 条记录的country和variety列8、包含Italy葡…...

【flask】 flask redis的使用
目的:如何使用在flask web项目中连接redis,并简单的使用 使用的库包:flask-redis pip install falsk-redis下面的写法是对项目代码进行模块化拆分的写法,在app.py中只进行对象的初始化等操作;exts.py中创建对象&…...
【Unity基础】Unity中的特殊文件夹详解
在Unity项目中,通常可以根据需要创建任意名称的文件夹来组织项目内容,但有一些特定的文件夹名称会触发Unity对其中资源和脚本的特殊处理。这篇文章将详细介绍这些特殊文件夹,帮助开发者在项目中合理地使用它们。 1. Assets 文件夹 Assets文…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...