为什么要使用Spring

既然提起为什么要使用Spring,我们就要聊聊没有Spring之前,我们的项目开发都是什么样的。

在没有Spring的时候,我们的对象,都是程序员通过手动new出来的,这样的开发,会导致一点就是,我们的对象之间的引用,非常混乱,这种混乱,臃肿的系统结构,当然受到了很多的质疑,所以,我们的spring之父 Rod Johnson 就提出了一种思想,那就是将设计一种框架,将那就是Sping。

他最开始的版本,只是实现了IOC和DI,也就是控制反转依赖注入

控制反转的具体实现,就是解析xml文件,通过反射以及BeanFactory,将我们的对象创建起来,这就叫控制反转。控制反转,反转了什么,那就是反转了我们的的控制权,之前我们都是主动创建对象的,现在是通过Spring容器来创建对象,所以这才叫控制反转。

至于依赖注入,就更好理解了。我们先来解释这个名词,依赖注入,依赖,谁依赖了谁,当然是我们的应用服务依赖了我们的Spring容器喽,至于注入,那肯定就是我们spring容器里面的资源注入我们的应用程序啊,这样,我们在开发的时候,就可以不需要考虑什么依赖关系了,也不需要考虑资源来自哪里,这一切都已经交给了Spring容器去管理了。

至于AOP(面向切面)则是能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性。

Spring AOP是基于动态代理的,如果要代理的对象实现了某个接口,那么Spring AOP就会使用JDK动态代理去创建代理对象;而对于没有实现接口的对象,就无法使用JDK动态代理,转而使用CGlib动态代理生成一个被代理对象的子类来作为代理。

这也是未来的一个趋势,开发人员越来越只注重业务实现。而无需考虑其他的东西。

虽然我们现在感觉spring是这样的美好,节省了很多的开发步骤,但是,随着项目的愈发庞大,一个新的问题出现了,配置的繁琐。

项目做大了,配置文件也将变得越来越大,这是个问题。

一个小项目,即使只实现一个小功能,但是也需要配置很多的东西,才可以,这也是个问题。

随着问题的突显,我们的Spring开发人员也发现了,所以,SpringBoot出现了。

SpringBoot简化了Sping配置繁琐的这个问题,同时内置了tomcat容器,无需外置服务容器,一键启动

SpringBoot的核心,就是他的一个个start,通过他的一个个start,我们才实现了SpringBoot那么丰富的功能。

你可能感兴趣的:(总结分享,学习笔记)