Spring框架的优点与缺点

我们看一个框架是否优秀,主要从以下几个方面考虑。首先看这个框架是否是非侵入式的,其次是可扩展性,再次是解耦性和开发周期。

Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对与EJB的。重要的是Spring是非侵入式的。所谓非侵入式就是远程调试而不植入,spring不再用new的方式来创建对象,而是使用依赖注入的方式。Spring作为一个框架提供了一些基础功能,如事务管理、持久层集成等,使开发人员更专注于开发应用逻辑。

、 先来说说Spring框架的优点,简单总结为以下几个方面:

1、使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑;

2、可以提供众多服务,事务管理,WS等;

3、AOP的很好支持,方便面向切面编程;

4、对主流的框架提供了很好的集成支持,如Hibernate、Struts2、JPA等。

5、Spring DI机制降低了业务对象替换的复杂性;

6、Spring属于低侵入,代码污染极低;

7、Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部。

再来说说Spring框架的缺点,与其说缺点不如说是我自己的一点思考吧:

spring依赖反射,反射影响性能,反射需要执行的代码指令量是纯代码的好几倍。你可以测试一下单纯用java操作数组可能性能直逼c++,但用了spring在调用各个函数时各种反射可能比python还要慢。

spring过度依赖设计模式,没有设计模式一样可以写代码,参考linux这么大的系统可以用c语言写得好好的,偏偏要玩几十个设计模式,这些设计模式并没有解决什么实际问题的痛点,这不是人为增加软件工程的复杂度吗?真正复杂的东西需要算法来解决,而不是设计模式滥用,如语言识别,图像识别,机器学习,设计模式根本解决不了这种复杂性问题。编程本质上是体力活,你老想着发明永动机,玩各种设计模式的技巧,试图代替人来干活其实有点不现实。

spring越来越强调云,但云系统在中国根本就不好用,你能用google吗?国内访问国外网站慢一半都是因为googleapi的加速变慢,下载个东西慢得要死,全部从网上下载来历不明的jar包安全性差,而且上国外网站经常出现断网,速度慢的问题,还要花钱买vpn,我还是比较认可微软那种把全家桶做成安装包,需要什么安装什么,安装包大不要紧,我们可以用bt加速下载,不要搞什么网络一个包一个包下载安装,都是拖慢大家的开发速度。

对于刚开始了解spring的开发者来讲,不太适合去探究spring的缺点,毕竟spring是个应用广泛的成熟框架,自然有他的优点,在足够了解了他的优点后,再去评判他的缺点也不迟。

发表回复