什么是Spring?它有哪些好处? (现在基本上是面试必问了)

什么是Spring?它有哪些好处?

Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,

主要是为了解决企业应用开发的复杂性而诞生的:

目的:解决企业级应用开发的复杂性。

功能:使用基本的JavaBean代替EJB。

范围:任何Java应用。

Spring的存在是因为它自身的得天独厚的优势:
它定位的领域是许多其他流行的framework没有的。
Spring是全面的和模块化的。
它的设计从底部帮助你编写易于测试的代码。
Spring是潜在一站式解决方案。

Spring天生就存在如下的有点:
低侵入式设计,代码污染极低。
Write Once,Run Anywhere
DI有效的降低了耦合度。
AOP提供了通用的任务的集中管理。
ORM和DAO简化了对数据库的访问。
高度开放性,并不强制(贯穿于变现层,业务层,持久层)

Spring的优点给开发带来的好处:
可以有效组织中间层对象。
使用同一的配置文件。
促进良好的编程习惯,减少编程代价。
易于单元测试。(一Spring基本组就是JavaBean,二提供了对Juit的支持)
使EJB成为一种备选。

为数据存取提供了一致性的框架。


Spring特点:
方便解耦,简化开发。
AOP(面向切面编程)的支持。
声明式事物的支持
方便程序的测试
方便集成各种优秀框架。
降低JavaEE API使用难度。
Spring的源码是经典学习范例。

附AOP通俗的理解

       一个组件A,不关心其他常用的服务组件B,但是这个组件A使用B的时候,不是组件A自身去调用,

而是通过配置等其他方式,列如Spring中可以通过XML配置文件。这样就使得A压根就不需要

知道服务组件B是怎么样的,爱存在不存在,爱怎么样存在都与A无关。A只需要关心自己的业
务逻辑,具体A使用B的时候,配置文件去做,与具体的A组件无关。
附IOC通俗的理解如下

     IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,

侧重于原理。

     DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其他对象实例后,侧重于实现。
     总结:
Spring带来了复杂dJ2EE开发的春天。
它的核心是轻量级的IOC容器,它的目标是为J2EE应用提供了全方位的整合框架,在Spring框架
下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其他的框架方案加以代替。

Spring希望为企业应用提供一站式的解决方案(建议:如果是高并发大型项目,慎重使用,

因为项目大量使用反射机制,必定会影响性能。)

--------------------- 本文来自 zhupengqq 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/zhupengqq/article/details/51228741?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_35661171/article/details/82969698