官网:https://spring.io/projects/spring-framework 文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/index.html
Spring框架是整个Spring生态的核心基础,其他Spring生态项目都需要使用Spring框架提供的核心功能,如:IoC,AOP,配置注解化等等。 因此,深入学习并理解Spring框架的原理是掌握Spring其他生态项目的关键。 Spring框架提供了构建Spring生态的基础功能,具体可以划分为:
Spring框架通过一个组件化的架构实现上述功能,包含如下模块:
更多Spring框架模块详情参见:https://github.com/spring-projects/spring-framework 。
对于编程框架而言,其主要目的在于提高编程效率,框架对一些底层的、重复性的功能进行组件化封装,便于快速开发应用层软件系统。 因此,在不同的编程领域或语言平台,都会存在这样或那样被称为“框架”的东西,如:Netty专注于网络编程,MyBatis专注于ORM,Shiro专注于认证授权。 Spring框架也不例外,它作为一个Java平台的编程框架,实现了对Servlet编程的封装,支持面向切面编程,支持数据访问及ORM映射等,这些功能有助于我们可以快速地开发出一个能稳定运行的服务。
Spring框架最核心的基础是IoC,基于IoC支持AOP、封装Servlet、实现数据访问和ORM映射等等。 可以说,Spring框架涵盖了丰富多样的应用场景,我们不仅仅需要学习它提供的功能,还要掌握每个功能背后实现的原理,以及其中使用的通用软件开发原则和设计模式。Spring框架中很多非常实用的功能是通过底层JDK提供的方法实现的,比如:注解、动态代理等等,非常值得借鉴和学习。 至于如何使用Spring框架,需要根据实际的应用需求,引入对应模块的依赖即可。例如:如果只需要使用Spring框架的核心功能,只需要在项目的pom文件中添加“spring-context”依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
显然,“spring-context”模块依赖了其他4个基础模块:“spring-aop”,“spring-beans”,“spring-core”和“spring-expression”。