框架之spring1:IOC

在面试的时候,spring被经常问到。但是自己答的很糟糕,打算整理一下。

spring出现前,企业用的一些框架太过于臃肿,低效。这也是spring开发者对j2ee的质疑,所以他才会写spring框架。来解决这些问题。

spring是一个开源框架,它的核心是IOC(控制反转)和AOP(面向切面)。

什么是IOC?

ioc是一种编程思想:当我们不断的去new(实例化)一个对象的,jvm不断的在堆中创建对象,很多都是重复的对象。这样不仅浪费内存,而且大大增加了GC回收的压力。

所以,我们需要改善它。我们想想,可不可以想像数据库一样,创建一个数据库连接池,所有对象存放在里面,然后去反复调用,这样就不会浪费资源了。

所以将对象放入池子进行管理的过程就叫做spring ioc依赖注入。

这就是是IOC(控制反转)


以上写的是我学java初期总结的,现在回头看看,错误很多。2020-4-21

首先new出的对象是会被gc回收掉的。其次,并不是在堆中创建对象,而是创建对象时,在方法区中创建对象的类信息,才把数据存在堆中,以后所new的相同的对象,就不需要在方法区中创建信息了。

但是在实际开发中不肯能频繁的去new一个对象,于是就用@Autowired 去注入一个类。

IOC叫控制反转,主要的作用就是减少耦合,当调用的方法中,这个方法里面直接定义了某一个实体,那么当我想掉用别的实体时就要改变这个方法中的实体。但是,谁也不能保证这个方法被调用多少次。那么,可想而知,这个耦合度太高,牵一发动全身。

现在有一个例子:java基础 IoC介绍及其简单实现 -

你可能感兴趣的:(框架之spring1:IOC)