Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development And Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架,其核心是控制反转(IOC)和面向切面(AOP)。
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 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包侧重于帮助类,操作工具——-道具
2.2 源码结构:
2.3 Beans【实例】
2.4 Context【上下文】
2.5 Core【核心】
2.5.1 Registry【描述注册器】
2.5.2 Strategy【初始化策略】
注: Spring框架源码
注: 简单的Spring框架
本文标题: Spring框架简介-入门篇
本文作者: 狂欢马克思
发布时间: 2024年06月04日 00:00
最后更新: 2025年04月03日 11:07
原始链接: https://haoxiang.eu.org/e37b75e2/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!