Spring框架(一)Spring核心,设计理念,创建,优缺点,使用场景···

一,什么是Spring

Spring是分层的Java SE/EE应用的架构,其核心是IoC(反转控制)和AOP(面向切面编程),提供了展示层的SpringMVC和持久层SpringJDBCTemplate以及业务层事务管理等众多应用技术,Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发

二,Spring的优缺点

  • 优点:
    (1)IoC:集中管理对象,可以降低对象和对象的耦合度,方便维护对象
    【 扩展:紧耦合和松耦合有什么区别】
    ① 紧耦合:紧密耦合指类之间高度依赖
    ②松耦合:它通过单一职责,关注分离,依赖倒置的设计原则实现,IoC是DIP的设计原理,DI是DIP的具体实现
    (2)AOP:在不修改代码情况下对业务代码(增删改查)增强,减少重复代码,提高开发效率
    (3)事物:通过添加注解@Transactional声明的方式对事物灵活管理,提高了开发的效率
    (4)集成框架:Spring的集成能力很强(基于源码),只需要简单配置就可以集成第三方框架
    (5)Java EE API:简化了开发,因为封装了很多功能性代码
    (6)源码:学习了Spring底层实现,反射··设计模式值得我们学习,提供很多扩展接口在外部进行扩展
  • 缺点:
    (1)应用层面是没有缺点的
    (2)简化开发:如果深入到底层了解很困难(上层使用越简单,底层封装越复杂)
    (3源码:由于Spring大而全,集成了很多框架,提供了很多扩展点,对于深入学习带来了一定的困难

三,Spring的设计理念和核心,目标

  • ①Spring设计目标:Spring为开发者提供一个一站式轻量级应用开发平台
  • ②Spring设计理念:在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OO(面向对象)设计方法;Spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦
  • ③Spring框架的核心:IoC容器和AOP模块。通过IoC容器管理POJO对象以及他们之间的耦合关系;通过AOP以动态非侵入的方式增强服务

四,什么场景使用Spring

应用场景:JavaEE企业应用开发,包括SSH、SSM等

  • Spring价值
    Spring是非侵入式的框架,目标是使应用程序代码对框架依最小化
    Spring提供一个一致的编程模型,使应用直接使用POJO开发,与运行环境隔离开来
    Spring推动应用设计风格向面向对象和面向接口开发转变,提高了代码的重用性和可测试性

五,创建并使用Spring

接下来使用Maven 方式来创建⼀个 Spring 项目,创建 Spring 项目和 Servlet 类似,总共分为以下 3
步:

  1. 创建⼀个普通 Maven 项⽬
    在这里插入图片描述
  2. 添加 Spring 框架⽀持(spring-context、spring-beans)
<dependencies>
  <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-context</artifactId>
     <version>5.2.3.RELEASE</version>
  </dependency>
  <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-beans</artifactId>
     <version>5.2.3.RELEASE</version>
  </dependency>
</dependencies>
  1. 添加启动
    最后在创建好的项目 java 文件夹下创建⼀个启动类,包含 main 方法即可
public class App {
    
    
  public static void main(String[] args) {
    
    
  }
}

六,Spring由哪些模块组成

Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和设备支持(Instrmentation) 、数据访问与集成(Data Access/Integeration) 、 Web、 消息(Messaging) 、 Test等 6 个模块中

  • spring core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。
  • spring beans:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。
  • spring context:构建于 core 封装包基础上的 context 封装包,提供了一种框架式的对象访问方法。
  • spring jdbc:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析, 用于简化JDBC。
  • spring aop:提供了面向切面的编程实现,让你可以自定义拦截器、切点等。
  • spring Web:提供了针对 Web 开发的集成特性,例如文件上传,利用 servlet listeners 进行 ioc 容器初始化和针对 Web 的 ApplicationContext。
  • spring test:主要为测试提供支持的,支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

七,Spring框架使用了哪些设计模式(源码)

  • 工厂模式:Spring的BeanFactory是简单工厂模式的体现,根据传入一个唯一标识来获得Bean对象,但是是否在传入参数前参数后创建要根据情况而定
  • 单例模式:保证一个类仅有一个实例,提供一个访问它的全局访问点BeanFactory,Bean默认为单例模式,但没有从构造器级别控制单例,因为Spring管理的是任意的Java对象
    【扩展:单例模式的好处】
    ①对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销;
    ②由于 new 操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻 GC 压力,缩短 GC 停顿时
  • 适配器模式:Spring定义了是适配接口,使得每种Controller有对应的适配器,这样在扩展Controller时,只需要一个适配器就完成SpringMVC的扩展
  • 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术
  • 观察者模式:Spring的事件驱动模型使用的是观察者模式,Spring的Observer模式常用到的地方就是listener的实现
    【扩展:观察者模式是什么,事件驱动模型是什么】
    ①观察者模式是一种对象行为型模式,它表示的是一种对象与对象之间具有依赖关系,当一个对象发生改变的时候,这个对象所依赖的对象也会做出反应
    ②事件驱动模型是观察者模型的应用,其核心构件通常包含以下几个:
  • 事件源:负责产生事件的对象。比如我们常见的按钮,按钮就是一个事件源,能够产生“点击”这个事件
  • 事件监听器(事件处理器):负责处理事件的对象
  • 事件:或者称为事件对象,是事件源和事件监听器之间的信息桥梁,是整个事件模型驱动的核心。

八,spring的核心类,一般组件有哪些

  • 核心类:
    BeanFactory:产生一个新的实例,可以实现单例模式
    BeanWrapper:提供统一的get及set方法
    ApplicationContext:提供框架的实现,包括BeanFactory的所有功能
  • Spring 框架中的组件:
    ①接口 - 定义功能
    ②Bean 类 - 它包含属性,setter 和 getter 方法,函数等
    ③Bean 配置文件 - 包含类的信息以及如何配置它们
    ④Spring 面向切面编程(AOP) - 提供面向切面编程的功能
    ⑤用户程序 - 它使用接口

猜你喜欢

转载自blog.csdn.net/qq_55660421/article/details/126198757