Spring简介
Spring是由Rod Johnson创建的一个实现了IoC思想的开源框架, Spring最初的出现是为了解决EJB臃肿的设计以及难以测试等问题
Spring是为了解决企业应用开发的复杂性而创建的,从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益
在Spring框架中它可以帮助我们new对象,并且它还可以将new出来的对象赋到属性上(给对象的属性赋值就是为了让对象之间产生关系)
Spring框架的特点
Spring是轻量的: 完整的Spring框架可在一个大小只有1MB多的JAR文件里发布并且Spring所需的处理开销也是微不足道的
Spring通过一种称作控制反转IoC的技术促进了松耦合
Spring提供面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务例如审计(auditing)和事务(transaction)管理进行内聚性的开发
Spring包含并管理组件(有功能的一些类)的配置和生命周期,在这个意义上它是一种容器可以自动的探查出哪些组件需要用到另一些组件
Spring可以将简单的组件配置、组合成为复杂的应用 , 应用对象被声明式地组合是在一个XML文件里
Spring5中的8大模块
Spring Core
核心模块(框架的基础核心), 它提供了依赖注入特征来实现容器对Bean的管理,将应用配置和依赖从实际的应用代码中分离出来
Spring Context
上下文模块扩展了BeanFactory
,增加了对国际化(I18N)消息、事件传播、验证的支持是Spring成为框架的原因
Spring AOP
模块提供了对面向切面编程的丰富支持,为基于Spring的应用程序中的对象提供了事务管理服务
Spring DAO
简化JDBC的模块提供了一个JDBC的抽象层和异常层次结构,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析
Spring ORM
模块为几种流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射,这些都遵从Spring的通用事务和DAO异常层次结构
Spring Web MVC
模块为构建Web应用提供了一个功能全面的MVC框架, 是专门为Servlet API和Servlet容器构建的
Spring WebFlux
模块(反应式堆栈Web框架Spring WebFlux是在 5.0 版的后期添加的)
Spring Web
上下文模块为基于Web的应用程序提供了上下文,提供了Spring和其它Web框架的集成(比如Struts、WebWork)
Spring5版本手动下载
第一步: 打开Spring官网 , 选择Spring Framework(其他项目通过Spring Framework衍生的框架)
第二步: 点击小猫头像进入github
第三步: 找到如图位置依次点击超链接
第四步: 在springframework目录下找到spring目录,点开之后你会看到很多不同的版本
第五步: 选择对应的spring版本并点击对应的url进行跳转
第六步: 点击spring-5.3.9-dist.zip
下载并将下载的zip包解压
如果你采用Maven的方式创建工程并且只是想用Spring的IoC功能,仅需要引入spring-context
依赖即可
<repositories>
<repository>
<id>repository.spring.milestoneid>
<name>Spring Milestone Repositoryname>
<url>https://repo.spring.io/milestoneurl>
repository>
repositories>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>6.0.0-M2version>
dependency>
dependencies>
Spring Framework的目录结构
docs
:spring框架的API帮助文档
libs
:spring框架的jar包,如果你采用maven的方式就不需要下载这些jar包,直接引入即可
spring-core-5.3.9.jar
: 字节码(这个是支撑程序运行的jar包)spring-core-5.3.9-javadoc.jar
: 代码中的注释spring-core-5.3.9-sources.jar
: 源码schema:spring框架的XML配置文件相关的约束文件如spring-aop.xsd文件夹
Spring的jar文件
如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring-beans.jar
文件就可以了
JAR文件 | 描述 |
---|---|
spring-aop-5.3.9.jar |
这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类 |
spring-aspects-5.3.9.jar |
提供对AspectJ的支持,可以方便的将面向切面的功能集成进开发环境中 |
spring-beans-5.3.9.jar |
这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion ofControl/Dependency Injection(IoC/DI)操作相关的所有类 |
spring-context-5.3.9.jar |
这个jar文件为Spring核心提供了大量扩展,可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类 |
spring-context-indexer-5.3.9.jar | 虽然类路径扫描非常快,但是Spring内部存在大量的类,添加此依赖可以通过在编译时创建候选对象的静态列表来提高大型应用程序的启动性能 |
spring-context-support-5.3.9.jar | 用来提供Spring上下文的一些扩展模块,例如实现邮件服务、视图解析、缓存、定时任务调度等 |
spring-core-5.3.9.jar |
Spring框架基本的核心工具类, Spring其它组件要都要使用到这个包里的类是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类 |
spring-expression-5.3.9.jar |
Spring表达式语言 |
spring-instrument-5.3.9.jar | Spring3.0对服务器的代理接口 |
spring-jcl-5.3.9.jar | Spring的日志模块,JCL全称为"Jakarta Commons Logging"也可称为"Apache Commons Logging" |
spring-jdbc-5.3.9.jar |
Spring对JDBC的支持 |
spring-jms-5.3.9.jar | 这个jar包提供了对JMS 1.0.2/1.1的支持类,JMS是Java消息服务属于JavaEE规范之一 |
spring-messaging-5.3.9.jar | 为集成messaging api和消息协议提供支持 |
spring-orm-5.3.9.jar | Spring集成ORM框架的支持,比如集成hibernate,mybatis等 |
spring-oxm-5.3.9.jar | 为主流O/X Mapping组件提供了统一层抽象和封装,OXM(Object Xml Mapping)实现对象和XML之间的相互转换 |
spring-r2dbc-5.3.9.jar | Reactive Relational Database Connectivity (关系型数据库的响应式连接)的缩写,这个jar文件是Spring对r2dbc的支持 |
spring-test-5.3.9.jar | 对Junit等测试框架的简单封装 |
spring-tx-5.3.9.jar |
为JDBC、Hibernate、JDO、JPA、Beans等提供的一致的声明式和编程式事务管理支持 |
spring-web-5.3.9.jar |
Spring集成MVC框架的支持,比如集成Struts等 |
spring-webflux-5.3.9.jar | WebFlux是Spring5添加的用于web的开发新模块(功能和SpringMVC类似),Webflux是当前一种比较流程响应式编程出现的框架 |
spring-webmvc-5.3.9.jar | SpringMVC框架的类库 |
spring-websocket-5.3.9.jar | Spring集成WebSocket框架时使用 |