当前位置: 首页 > article >正文

系列二、Spring Framework(Spring的优缺点是什么)

一、Spring的优缺点是什么

1.1、优点

(1)方便解耦,简化开发

        通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring容器管理,避免硬编码所造成的过度耦合,有了Spring用户不必再为单实例模式类、属性文件解析等这些底层的需求编写代码,可以更关注于上层的应用。

        人话:集中管理对象,降低对象和对象之间的耦合性,方便维护对象。

(2)AOP编程的支持

        通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付,Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中管理,从而提高复用性。

        人话:在不修改代码的情况下可以对业务代码进行增强,减少重复代码,提高开发效率,方便维护。

(3)声明式事务的支持

        在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

        人话:提高开发效率,只需要一个@Transactional注解,即可完成事务管理

(4)方便程序测试

        可以用非容器依赖的方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4的支持,可以通过注解方便的测试Spring程序。

        人话:Spring实现了测试,使我们可以结合Junit非常方便的测试Spring Bean、SpringMVC

(5)方便集成各种优秀框架

        Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,提供了对各种优秀开源框架的直接支持,例如:Struts、Hibernate、Hessian、Quartz等。

        人话:拥有非常强大的粘合度,集成能力非常强,只需要简单的配置就可以集成第三方框架。

(6)降低JavaEE API的使用难度

        Spring对很多难用的JavaEE API(如Jdbc、JavaMail、RestTemplate等)提供了一个薄薄的封装层,通过Spring的简易封装,使这些API的使用难度大大减低。

        人话:简化开发,帮我们封装了很多功能性的代码。

(7)Java源码是经典学习范例

        Spring的源码设计精妙、结构清晰、匠心独运、处处体现着大师对Java设计模式的灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践,如果想在短时间内快速提高自己的开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

        人话:Spring的底层大量使用了反射、设计模式等技术,提供了非常多的扩展接口供外部进行扩展,很值得我们去学习。

1.2、缺点

(1)从应用层方面来讲Spring是没有缺点的;

(2)Spring简化了我们的日常开发,但是如果我们想要深入到底层去了解的话就非常困难(上层使用越简单,底层封装的就越复杂);

(3)源码缺点:由于Spring大而全,代码量非常庞大(100多万行代码),对于去深入学习研究带来了一定的困难;

        


http://www.kler.cn/a/105836.html

相关文章:

  • 一文了解 inductive bias(归纳偏好)
  • Spark:大数据处理的强大引擎
  • 人工智能的未来展望与挑战
  • 商业物联网详细指南:优势与挑战
  • 学习日志012--python中多进程,多线程
  • DNS with libevent
  • 基于STM32温湿度传感器采集报警系统设计
  • RPA厂商大比拼,哪家才更适合您?
  • word2vec两种优化方式的联系和区别
  • 如何选择专业的汽车托运平台
  • ‍ IT行业就业趋势:哪些方向更受青睐?
  • 深入理解数据结构(1)—用链表实现栈
  • RN读写json文件
  • 汽车托运是怎样收费
  • Windows平台下将exe及其dll封包到新的exe
  • 【Java 进阶篇】Java HTTP 请求消息详解
  • 分享119个ASP.NET源码总有一个是你想要的
  • 如何通过内网穿透实现公网远程连接Redis数据库
  • 如何将Mysql数据库的表导出并导入到另外的架构
  • 2023年Q3企业邮箱安全性报告:境内钓鱼邮件超过境外攻击
  • JavaScript手写题
  • 数据结构与算法之排序: 快速排序 (Javascript版)
  • Centos磁盘问题小纪
  • 扩展 Calcite 中的 SQL 解析语法
  • 基于STM32设计的万能红外遥控器(学习型)
  • CSS色域、色彩空间、CSS Color 4新标准 | 京东云技术团队