系列二、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多万行代码),对于去深入学习研究带来了一定的困难;

相关推荐
专注于大数据技术栈15 小时前
Java中JDK、JRE、JVM概念
java·开发语言·jvm
YuanlongWang15 小时前
C# 基础——值类型与引用类型的本质区别
java·jvm·c#
Kay_Liang15 小时前
大语言模型如何精准调用函数—— Function Calling 系统笔记
java·大数据·spring boot·笔记·ai·langchain·tools
自由的疯15 小时前
Java 如何学习Docker
java·后端·架构
自由的疯15 小时前
Java Docker本地部署
java·后端·架构
007php00715 小时前
猿辅导Java面试真实经历与深度总结(二)
java·开发语言·python·计算机网络·面试·职场和发展·golang
摇滚侠15 小时前
Spring Boot 3零基础教程,WEB 开发 内容协商机制 笔记34
java·spring boot·笔记·缓存
一勺菠萝丶15 小时前
在 macOS 上用 Docker 为 Java 后端 & 常见开发需求搭建完整服务(详尽教程)
java·macos·docker
顾漂亮16 小时前
JVM底层攻坚
java·jvm·spring
编程岁月16 小时前
java面试-0215-HashMap有序吗?Comparable和Comparator区别?集合如何排序?
java·数据结构·面试