初识Spring框架

Spring 框架的历史由来

        Spring 框架是一个轻量级的企业级应用框架,兴起于 2003年。当时流行的传统Java EE 框架均为过于脆肿的“重量级”架构体系,其开发效率、开发难度和实际的性能都不能满足人们的需求。Spring 中文含义为“春天”,正如它的名称一样,Spring 框架的诞生给人一 种格外清新的感觉,蕴藏着勃勃生机
        Spring 框架最初是由 Rod Johnson 在《Expert One-on-One Java EE 设计与开发》一书中的部分理念衍生而来的。在书中,他对传统的JavaEE 技术日益臃肿和低效提出了质疑,他认为应该有更便捷的做法,于是提出了Interface 21,也就是 Spring 框架的雏形。他提出了技术以实用为准的主张,引发了人们对“正统”JavaEE的反思。2003年2月,Spring框架正式成为一个开源项目,并发布于SourceForge 中。

        Spring框架致力于Java EE应用的各种解决方案,而不是仅仅专注于某一层的方案。可以说,Spring 框架是企业应用开发的“一站式”选择,贯穿于表现层、业务层、持久化层。然而,在已经有较好解决方案的领域,Spring框架绝不做重复性的实现,它更像是一个容器、一个超级黠合平台,以高度的开放性欢迎其他优秀的框架,并与它们无缝整合。例如,对象持久化和 ORMSpring 只是对现有的 JDBC、MyBatis、Hibernate 等框架技术提供支持,使之更易用,而不是重新做一个实现
Spring框架由大约20个功能模块组成,如Core Container、Web、AOP、Data、Instrumentation、Messaging 和 Test 等。

        以上模块中,Spring Core 是框架最基础的部分,提供了10C特性。Context 为企业级开发提供了便利、集成了工具。Spring AOP 是基于Spring Core 的面向切面编程实现。SpringJDBC提供了JDBC 的抽象层,简化了JDBC编码,同时使代码更健壮。SpringORM 对市面上流行的 ORM框架提供了支持。SpringWeb 为Spring 在 Web 应用程序中的使用提供了支持。控制反转的轻量级容器,用户可以使用它建立自己的应用程序。在此容器之上,Spring 框架提供了大量实用的服务,并将很多高质量的开源项目集成到统一的框架之上。

        目前,Spring框架已经发展为一个功能丰富且易用的集成框架,其核心是一个完整的基于

1. 什么是Spring框架?

Spring框架是由于开发的复杂性而创建的,使用基本的JavaBean代替EJB;
Spring框架还是一个轻量级的控制反转和面向切面的容器框架;
Spring框架使用于包括服务器开发等的任何Java应用,使得Java程序更加便捷、高效、安全

Spring 框架是一个分层架构,从总体来看,Spring 分为3层,最底层是核心层,包括 IOC、AOP 等核心模块,中间层是封装的 JavaEE 服务、作为中间的驱动组件,最上层是各个应用。

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下

  • 核心容器(Core Conatiner):Spring 核心容器是 Spring 框架中最重要的模块,其主要提供了 Spring 基础功能之一的 IOC 功能,其他层次的模块必须构建于核心容器之上。

    核心容器由 spring-core、spring-beans、spring-context、spring-context-support 和 spring-expression 模块组成:

    核心容器中 spring-core、spring-beans 提供了框架的基本功能,包括控制反转(IOC),其主要组件是 BeanFactory,借助复杂工厂模式的实现,将配置和特定的依赖从实际程序逻辑中解耦。

    context 模块建立在 core 和 beans 模块的基础上,增加了对国际化的支持、事件广播、资源加载和创建上下文,ApplicationContext 是 context 模块的重点。

    spring-context-support 提供对常见第三方库的支持,集成到 Spring上下文中,比如缓存(ehcache,guava)、通信(javamail)、调度(commonj,quartz)、模板引擎等(freemarker,velocity)。

    spring-expression 模块提供了一个强大的表达式语言用来在运行时查询和操作对象图,这种语言支持对属性值、属性参数、方法调用、数组内容存储、集合和索引、逻辑和算数操作及命名变量,并且通过名称从spring的控制反转容器中取回对象。

  • 面向切面编程(AOP):spring-aop 模块为 Spring 框架提供了面向切面的编程实现,spring-aspects 模块提供了aspectj 的集成与使用。

  • 服务器工具(Instrumentation):spring-instrument 提供一些类级的工具支持和 ClassLoader 的实现,用于服务器。spring-instrument-tomcat 是针对 tomcat 的 instrument 实现。

  • 消息组件(Messaging):Spring框架4 包含了 spring-messaging 模块,从 Spring 集成项目中抽象出来,比如 Messge、MessageChannel、MessageHandler 及其他用来提供基于消息的基础服务。

  • 数据访问/集成(Data Access/Integration):数据访问和集成层主要作为持久层的解决方案,其由 JDBC、ORM、OXM、JMS 和事务模块组成。

  • 网络(Web):Web 层由 spring-web、spirng-webmvc、spring-websocket 和 spring-webmvc-portlet 模块组成。

    spring-web 模块提供了基本的面向 Web 开发的集成功能,例如多文件上传、使用 servlet listeners 和 Web 开发应用程序上下文初始化 IOC 容器。也包含 HTTP 客户端以及 Spring 远程访问的支持的 Web 相关部分。

    spring-webmvc 包含 Spring 的 model-view-controller 和 REST web services 实现的 Web 应用程序。

  • 测试(Test)spring-test 模块支持通过组合 Junit 或 TestNG 来进行单元测试和集成测试,提供了连续的加载 ApplicationContext 并且缓存这些上下文。

2. IOC 容器是什么?

计算机中的容器
我们先来谈谈容器是什么,在计算机中的容器,其实和我们日常所说的容器其实是一一回事。

在日常生活中,
书架的可以用来放书、衣柜可以用来放衣服、瓶子可以用来装水,它们都是容器,而容器就是可以用来容纳东西的东西。

在计算机领域中,
List / Map 是一个用来存储数据的容器,Tomcat 是一个放 Web 程序的容器。

2.2 IOC 容器
IOC(Inversion of Control,控制反转)是一种设计原则,而IOC容器则是实现这个原则的工具或框架。

控制反转(IOC)是一种编程思想,它的主要思想是将对象的创建、配置和控制权交由一个专门的组件来完成,而不是由对象本身或使用对象的客户端完成。这个专门的组件在Spring中就是所谓的IOC容器。

IOC容器是Spring框架的核心组成部分,它负责实现控制反转原则。IOC容器负责创建对象,解析和注入依赖,管理对象的生命周期,以及实现对象之间的依赖关系。

简单来说,IOC是一种理念或原则,而IOC容器则是实现这个原则的实体或工具。在Spring中,这个工具就是Spring框架自身。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值