Spring核心概念

一、Spring是什么?核心功能是什么?如何理解Spring

我们通常所说的Spring,其实也就是Spring Framework ,是java圈子里应用非常广泛的一种框架,如果用一句话概括,那就可以说Spring是包含了众多工具方法的IoC容器。

核心功能就是容器管理,简单来说就是向spring容器中放对象,从spring容器中取对象。

如果需要对这个概述做进一步阐释,前半句没什么好说的,那我们就需要从IoC和容器这两个角度来入手进一步讨论。

二、IoC和DI是啥?有啥区别?

一说起这个IoC,我们一般会和这个DI联想到一起,他们就跟一对CP一样,所以理清楚他俩之间的联系也可以帮助理解。当然我还是先分别说说我对他俩的理解再说其他的哈。

IoC其实是Inversion of Control的缩写,其实翻译成中文,我们可以理解为是控制权的反转。这里我举一个例子来说明:

假定我们要造车子,按照一般的思路是从车--》框架--》车底--》轮胎的吧,那么如果将这个过程程序化,我们就需要定一个Car类,然后里边有个Frame的对象,然后定义Frame类,里边有一个Bottom对象,再定一个Bottom类,里边有一个Tire对象,最后Tire类里边有造一辆车需要的最基本的属性,比如,轮胎大小,轮胎的颜色(红、蓝、黑、白),这一组程序中,Car对象就对Frame对象有控制权,Frame对象就对Bottom,Bottom对Tire有控制权。但是试想,现在来了个超级有钱的少爷或者小姐说,我有钱,我不想要和别人一样款式的车,我要超级拉风的车子,车线要流畅,要非常酷/靓,颜色要个黑曜色/暗夜紫,轮胎要个更大的,再加一些别人没有的配置等等一些类要求,这个生意做吗!当然得做!但是我们如果按照现有的工厂模式,一层嵌一层的,想要完成这笔订单,得非老力了,我们这整个调用链上的代码都得调整。

但是如果我们换个思路,不在每个类下边创建自己依赖的子类,而是直接在终端创建对象,然后一层一层的放到需要依赖它的对象里边,这样即使下层发生变化,上层也不需要改动任何代码。这样就可以完成了程序的耦合性,实现了车子定制化自由~~

后边思路里相当于Tire对象对Bottom对象有控制权,Bottom对Frame,Frame对car有控制权,与之前相比,发生了控制权反转,这个对象控制权发生反转的过程,就体现了IoC思想。简单来说,IoC思想就是把创建对象的权利交给容器,对象的实例不再由调用者来创建,而是由容器来创建,容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。

至于DI,其实也就是Dependency Injection即依赖注入,也就是把依赖的某个对象动态的拿到当前类的行为。

关于两者的联系,相同的是它都描述了同一件事,就是通过依赖关系注入的方式,实现对象之间的解耦,都有方便、高效、解耦的优点,不同的是IoC是一种思想,DI则是IoC思想落地的具体实现。

三、Spring最核心的功能是啥?

简单来讲,就是两个,一是从spring容器中取对象,而是从往spring容器中放对象

具体说存取的流程的话,就是首先创建一个spring项目,然后创建一个Bean,并把它注册到spring的配置文件中(resources目录下);取Bean的话就是获取全局配置文件,创建spring上下文对象,通过getBean获取bean,然后使用bean。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring是一个开源的轻量级应用框架,其核心思想是IoC(Inversion of Control)和AOP(Aspect Oriented Programming),其中: 1. IoC(控制反转):指将对象的创建和依赖关系的管理交给Spring容器来完成,即由容器来控制对象的生命周期和依赖关系。通过IoC容器,我们可以将对象之间的依赖关系从代码中分离出来,使得代码更加简洁、灵活、易于维护和扩展。 2. AOP(面向切面编程):指通过在程序中定义切面(Aspect)来实现对横切关注点(Cross-cutting Concerns)的管理。切面可以定义一些通用的行为,如日志记录、性能统计、安全控制等,然后将其应用到多个不同的对象中,从而实现代码的重用和统一管理。 除此之外,Spring还有一些其他的核心概念,如: 1. Bean:在Spring中,所有的对象都被称为Bean,Bean是Spring IoC容器中的基本构建模块,它由容器创建、组装和管理。 2. ApplicationContext:是Spring的IoC容器的接口,它负责管理Bean的生命周期和依赖关系,并提供了一些高级功能,如事件传播、国际化、资源管理等。 3. Spring MVC:是Spring框架中的Web应用程序开发框架,它基于MVC(Model-View-Controller)架构模式,提供了一组组件和工具,使得开发Web应用程序更加容易和灵活。 总之,Spring核心概念包括IoC、AOP、Bean、ApplicationContext和Spring MVC等,这些概念Spring框架提供了强大的功能和灵活性,使得开发者可以更加方便地开发出高质量的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值