Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development And Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架,其核心是控制反转(IOC)和面向切面(AOP)。

Spring


IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器),降低了业务对象替换的复杂性,提高了组件之间的解耦。

AOP的将一些通用任务,如安全、事务、日志等集中进行管理,提高了复用性和管理的便捷性
ORM和DAO提供了与第三方持久层框架的良好整合,简化了底层数据访问。

提供了优秀的Web MVC框架。
可以说Spring是贯穿表现层、业务层、持久层,为javaEE提供一站式解决方案的框架。此外,使用Spring还有如下好处,

低侵入设计,代码污染极低。

基于Spring框架的应用,可以独立于各种应用服务器,实现 write once, run anywhere,Spring可以与第三方框架良好整合(如ORM,DAO等模块与其他框架整合),但同时Spring提供了高度开放性,应用不会被强制依赖Spring,开发者可以自由选择Spring的部分或者全部。

Spring并不局限于中间层,而是为系统各层都提供了企业级解决方案(例如IOC可以

使用Spring框架可以带来诸多好处,例如进行数据库事务处理,远程调用,JMS消息处理,JMX操作处理,而这些处理都不需要开发人员直接使用相关API(JDBC, JMX, JMS 等)

一、Spring 框架的20个模块

Spring


Spring IOC:

IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”。本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IOC容器,spring的IOC容器主要使用DI方式实现的。不需要主动查找,对象的查找、定位和创建全部由容器管理。spring ioc 是spring的核心,在spring中主要用户管理容器中的bean。

Spring AOP:

AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。spring aop 也是spring的核心,利用aop的技术可以用来做日志、权限、缓存等功能实现。

Spring ORM:

Spring支持大多数ORM框架,比如Hibernate,JPA,JDO,TopLink和iBatis(spring2支持iBatis2,现MyBatis3的spring支持由MyBatis社区开发,并非spring)。

Spring MVC:

Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。从这样一个角度来说,spring MVC和Struts、Struts2非常类似。

Spring Webservice:

Spring 支持集成Apache cxf、axis2、xfire等不同集中webservice实现方案。

Spring Transaction:

Spring完美的支持了对事物的管理,目前主要有两种实现发难,一种是配置文件、一种是基于注解来实现。


Spring JMS:

Spring支持对activemq、RabbitMQ消息中间件的集成。

Spring Data:

Spring Data 作为springSource的其中一个父项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。

Spring Cache:

Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存临时存储方案,也支持和主流的专业缓存例如 EHCache 集成。

Spring Boot:

Spring-Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

Spring Security:

Spring Security是一个能够为基于spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在spring应用上下文中配置的Bean,充分利用了spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

Spring Schedule:

Spring在schedule这块支持JDK Timer、concurrent、quartz三种,这三种任务调度方案在实现机制和调用方法上都不同,但spring通过对其包装,使得基于spring能用统一的配置和编码风格来使用这三种schedule方案。

二、框架源码解析

2.1 框架版本:

spring-framework-5.0.6.RELEASE

  Spring 的骨架,也是spring 的核心包。主要包含三个内容

1.Beans:spring的bean实例,beans包更侧重于bean实例的描述 ——-演员

2.Context:spring 的上下文,context更侧重全局控制,功能衍生——-导演

3.Core:spring的核心包,主要包括spring所以用到的工具, core包侧重于帮助类,操作工具——-道具

Spring

2.2 源码结构:

Spring

2.3 Beans【实例】

Spring

2.4 Context【上下文】

Spring

2.5 Core【核心】

2.5.1 Registry【描述注册器】

Spring

2.5.2 Strategy【初始化策略】

Spring

注: Spring框架源码

注: 简单的Spring框架

本文标题: Spring系列-Spring框架简介-入门篇

本文作者: 狂欢马克思

发布时间: 2020年06月04日 00:00

最后更新: 2021年04月15日 16:08

原始链接: https://www.hosiang.cn/e37b75e2/

版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!

× 喜欢就赞赏一下呗!
打赏二维码