Spring 入门(一):什么是Spring、什么是IoC?


我们可以从来两个角度去认识Spring,从技术的角度看,Spring是一个 IoC(控制反转)和 AOP(面向切面编程)的 容器;从用途的角度看Spring是一个解决企业级应用开发的 复杂性问题而诞生的 框架

何为框架

对框架最简单的描述就是:框架是一个半成品软件。
我们在开发不同软件的过程中,会遇到一些重复的、基础的代码。例如:要编写出一个导航栏,需要使用Html定义一些按钮,图标,再用Css将这些元素进行合理的布局。如果要将这个导航栏美化,就需要更多的Css代码。每次创建导航栏都是用这些代码,那为何不将这些代码的重复部分进行封装呢?对于实现一个完整的功能,有很多地方可能都有这样经常重复的代码,将大部分这些地方能够封装的重复性代码进行封装,就组成了框架。
而在企业级应用的开发中,为了让软件兼容性好,经常需要遵循一些特定的规范,这些特定规范的存在就导致了一些重复、基础的代码的存在,将这些特定的规范实现并封装,也就成了企业级应用的框架。如:Java EE就是一个很常见的规范。
说到这里,在Java SE中我们经常使用很多类库,这些类库其实也封装了很多方法和属性,它们和框架的区别就是:类库是松散的,每一个类库都能实现一个特定的功能(与庞大的业务相比,这些功能很小),类库更像是一堆松散的工具。而框架是高内聚的,框架专注于某一个领域,它在该领域已经实现的功能远比单纯的类库多。
开发者和框架结合,最终就完成了一个成品软件。
在这里插入图片描述

Spring是一个什么框架?

在这里插入图片描述
如图所示,Spring框架可以分为7个模块

  • 核心容器(Core Container):
    提供DI(依赖注入)的特征,该模块中有BeanFactory,是所有Spring应用的核心。BeanFactory使Spring成为一个容器
  • 应用上下文模块(Context):
    扩展了BeanFactory,使Spring成为一个框架
  • AOP模块:
    提供了对AOP的支持。
  • DAO模块:
    简化了JDBC,在数据库服务器的错误消息上提供了异常层,并为Spring的对象提供了事务管理
  • ORM(对象/关系映射)模块:
    为几种流行的ORM框架提供了集成方法。
  • MVC模块:
    为Web应用提供了使用IoC的,分离了控制逻辑和业务对象的MVC框架。
  • Web模块:
    提供适合于Web应用的上下文,也提供了与其他Web框架的集成方法。

看完上面这些肯定还是一头雾水,要对上面的内容有清晰的认识得学完所有Spring的知识,这篇文章就先从IoC说起。

何为IoC?

IoC的全称为控制反转,有反转肯定就有正转,什么是正转呢?
我们之前编程时,当需要在A类中用到B类的属性或方法时,通常是在A类中创建一个B类的对象,或者让A类继承B类。这样两个类之间的依赖关系是由A主动去维护的,这就是正转。这样当类越来越多时,它们的依赖关系也就越来越复杂。
比如这样的:
在这里插入图片描述
虽然理清它们不难,但还是很繁琐。
而引入了IoC,就是将维护类之间的依赖关系的过程交给IoC容器去处理,当A类需要B类的属性或方法时,由IoC容器将这些属性和方法注入进A类,即A类获得依赖对象的过程反转了(不再由自己主动获取了,而是被动接受)。至于这是如何实现的又是后话了,Spring就是这样一个IoC容器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值