何为Spring框架、Spring的特点及优点以及使用Spring的好处是什么?

Spring框架是一个经久不衰面向企业级的轻量型开源框架,在2003年兴起变一直被开发者追捧。

作为JavaEE/SE的full-stack(一站式)技术解决框架,他为MVC每一层都提供了有效的技术解决方案,更好的解放程序员的双手,使得猿们不用为单例对象创建,文件解析的繁琐的事情困扰,可以更专心于上层编写。

Spring的核心IOC(控制反转)与AOP(切面编程)。

Spring的最开始配置大部分都是注解+XML的形式进行配置,相较而言比较繁琐,但是SpringBoot的到来,对部分配置文件进行了封装,使得我们可以通过注解➕核心配置文件properties或者更简洁的yml文件就可以完成配置。大大提高了开发的效率。

Spring的特点:

1.高度解耦,方便开发(AOP与DI)。

2.AOP编程的思想。

3.生命式事务,不再用手写事务。

4.集成各种优秀框架,更好的兼容。

5.降低EE中部分API的使用难度。

Spring的优点:


1.轻量级框架,低侵入式。

2.IOC降低对象的切换复杂度,方便解耦。

3.AOP编程,对事务,安全,日志等提供了更好的复用能力。

4.对Dao层提供了更优的解决,方便底层数据交互。

5.非强制性,可以使用部分或者全部。

IOC(控制反转)

Spring的IOC是基于工厂模式和反射来实现。

beanFactory+反射,beanFactory相当于一个大容器,简单来说,我们在代码中调用对象时,都需要new来获取对象,需要一个new一个,这样的动作,繁琐,不仅代码冗余而且很增加程序的开销。JVM的堆内存中会不断有新的对象存入,然后gc回收。Spring为了解决这个问题,就有了beanFactory这个对象工厂。这时候,我们在需要一个对象就不需要不断的new了,而是从这个工厂中获取。这个工厂就相当于一个第三方的介质。IOC的核心就是资源不由资源的双方管理,而是交给第三方。这时候,当一方需要另一方的资源的时候,就不再需要去直接联系了,而是直接从第三方中获取。这个跟我们平常生活中的中介很像,你想要租房子,房东有房子往出租,他将资源放在中介那里,你将需要的信息给中介,中介就会把相应的资源给你。再比如淘宝就是一个庞大的IOC,买家,卖家,淘宝中心媒介。

IOC的使用的重要思想是依赖倒置的思想。举个例子,造一辆汽车,常规流程,先研究轮子的大小规格,根据轮子造车身,然后再根据车身最后设计车子的整体框架。但是有一个问题,如果突然有一天,车子的轮子不合适要改,这样的话,车身甚至车子整体都要改。但是,如果我们把设计理念倒过来,我们先设计车身的整体构造,然后按照模型,做出车身,最后根据车身,做出轮子,这样的话,即使是修改轮子,别的地方也不会有影响。这就是把原来的高层建筑依赖底层框架,改变成了底层框架依赖高层建筑。高层需要什么就从底层拿什么,但是你底层具体做了些什么我不需要管太多。

这就跟我们平时开发一样,我的控制层接收参数然后需要调取业务层实现业务,这时候我们只需要将业务层注入到里面就可以了,同理持久层也一样。只需要依次注入,但是你具体怎么实现,本身跟我自身是没有太大联系的,这时候,即使修改持久层的Sql或者业务层的代码,都是顺理成章,对别的层影响都不是很大。也做到了最大程度上的解耦。

这样层层注入,你也不需要大量的new,你所要关心的就是什么需要交给Spring管理,什么不需要就好了。

当然,Spring创建出来的对象是否是线程安全的也是需要考虑的一个问题?

你可能感兴趣的:(何为Spring框架、Spring的特点及优点以及使用Spring的好处是什么?)