Spring的好处都有哪些

     首先从spring的核心内容AOP(面向切面变成)IOC(控制反转)说起,首先面向切面编程指的是针对业务处理过程中的切面进行提取,它所面向的是处理过程中的某个步骤或阶段,而我之前学习的则是OOP,面向对象编程,其中OOP只允许定义从上到下的关系,但并不适合定义从左到右的关系,导致了大量代码的重复,而不利于各个模块的重用。

    相比于OOP,AOP的优点主要体现在减少了系统的重复代码,降低模块间的耦合性,并且有利于未来的可操作性和可维护性。然后是IOC(控制反转),控制反转并不是一种技术,而是一种思想,指的是将创建对象的权力交给了框架,也就是说我们需要在一个类中使用另一个类的方法时不再需要new一个新对象,而是将这些交给了IOC容器来做,相当于你平时吃饭需要自备碗筷再去装饭吃,而现在只需要坐着吃饭就行了,并且由于这种设计模式是由下层依赖于上层,因此在需要修改顶层的设计时会较为简单,因为不会需要同步修改底层的逻辑结构。

    这种设计的具体方法就是所谓的DI(依赖注入),依赖注入可以将底层的参数传入上层,实现上层对下层的控制,这种模式的好处也在于程序的解耦,并且便于程序的单元测试和后期的升级与维护。除了这两个核心内容提供的便利,spring的好处还有对于主流的应用框架提供了集成支持,属于低侵入式设计,代码的污染极低,独立于各种应用服务器并且高度的开放等等。