Spring框架的好处,为什么要用Spring?~~~未整理

https://blog.csdn.net/weixin_39911085/article/details/82355258
https://blog.csdn.net/a499477783/article/details/79893322
https://blog.csdn.net/yu422560654/article/details/7318499

  1. 方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理
  2. spring支持aop编程(spring提供面向切面编程,可以很方便的实现对程序进行权限拦截运行监控等功能)
  3. 声明式事务的支持(通过配置就完成对事务的支持,不需要手动编程)
  4. 方便程序的测试 spring 对junit4支持,可以通过注解方便的测试spring 程序
  5. 方便集成各种优秀的框架()
  6. 降低javaEE API的使用难度(Spring 对javaEE开发中非常难用的一些API 例如JDBC,javaMail,远程调用等,都提供了封装,是这些API应用难度大大降低)

spring带来了什么?

说到Spring肯定离不开它的两大特性AOP和IOC

  • IOC:把我们的类上交,由Spring来进行统一的管理和配置,在需要使用的地方注入好处是减少了各个类之间的相互依赖,依赖控制交给Spring管理。
  • AOP:封装了jdk和cglib的动态代理,结合IOC提供了更方便的增强类的方法。

没有Spring会怎么样?

想知道为什么使用,最好的办法就是想想如果没有会怎样,没有手机、没有电脑、没有操作系统……。没有Spring框架。

如果没有Spring,我们不得不在使用每个类之前,实例化一个对象。当然我们可以用工厂方法来做这件事,就可以集中管理并且让调用者和被调用者之间的耦合更松散。于是需要大量的工厂类,并且在增加或改变接口实现的时候还需要对工厂进行调整。而Spring就像一个大工厂一样使用了大量的反射机制来生成需要实例的对象

除此之外Spring还带来了强大的代理,我们使用的每个注入的对象都是经过代理的增强对象,同时可以使用aop包来定义一些与业务逻辑不相关的切面增强功能模块的内聚拆分功能模块和非业务模块。而AOP又是建立在IOP基础之上,因此如果没有Spring,功能模块和非功能模块混在一起,导致逻辑混乱不清晰

为什么要用Spring

现在已经很清晰了,用Spring可以让各个模块耦合更松散,可以在业务逻辑之外进行增强代理,实现非业务功能。所以就算没了Spring,也会有类似的其他框架来实现这些目的,而现在Spring的生态比较大,社区又比较活跃,为什么不用呢?

Spring

1.简介

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

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

简单来说,Spring是一个轻量级控制反转(IoC)面向切面(AOP)容器框架

2.轻量  从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

3.控制反转  Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

4.面向切面  Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

5.容器  Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

6.框架  Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

猜你喜欢

转载自blog.csdn.net/csdnlijingran/article/details/88388470