• Spring——Spring基础介绍


    1. Spring框架简介

        Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring 的核心是控制反转(IoC)面向切面编程(AOP)。Spring 是可以在 Java SE/EE 中使用的轻量级开源框架。
        Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。就是让对象和对象(模块和模块)之间关系不是使用代码关联,而是通过配置来说明。即在 Spring 中说明对象(模块)的关系。
        Spring 根据代码的功能特点,使用 Ioc 降低业务对象之间耦合度。IoC 使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由 Spring 容器统一管理,自动“注入”,注入即赋值。 而 AOP 使得系统级服务得到了最大复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“注入”。

    2. Spring的优点

        Spring 是一个框架,是一个半成品的软件。有 20 个模块组成。它是一个容器管理对象, 容器是装东西的,Spring 容器不装文本,数字。装的是对象。Spring 是存储对象的容器。

    2.1 轻量

        Spring 框架使用的 jar 都比较小,一般在 1M 以下或者几百 kb。Spring 核心功能的所需的 jar 总共在 3M 左右。Spring 框架运行占用的资源少运行效率高不依赖其他 jar

    2.2 针对接口编程

        Spring 提供了 Ioc 控制反转,由容器管理对象,对象的依赖关系。原来在程序代码中的对象创建方式,现在由容器完成。对象之间的依赖解耦合

    2.3 AOP编程支持

        通过 Spring 提供的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付,在 Spring 中,开发人员可以从繁杂的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

    2.4 方便继承各种优秀框架

        Spring 不排斥各种优秀的开源框架,相反 Spring 可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如 Struts2,Hibernate、MyBatis)等的直接支持。简化框架的使用。
        Spring 像插线板一样,其他框架是插头,可以容易的组合到一起。需要使用哪个框架,就把这个插头放入插线板。不需要可以轻易的移除。

    3. Spring的体系结构

    在这里插入图片描述

    3.1 Core Container(核心容器)

        Spring的核心容器是其他模块建立的基础,它主要由Beans模块、Core模块、Context模块、Context-support模块和SpEL(Spring Expression Language,Spring表达式语言)模块组成,具体介绍如下:

    • Beans模块:提供了BeanFactory,是工厂模式的经典实现,Spring将管理对象称为Bean。

    • Core核心模块:提供了Spring框架的基本组成部分,包括IoCDI功能

    • Context 上下文模块:建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。其中ApplicationContext接口是上下文模块的焦点。

    • Context-support模块:提供了对第三方库嵌入Spring应用的集成支持,比如缓存(EhCache、Guava、JCache)、邮件服务(JavaMail)、任务调度(CommonJ、Quartz)和模板引擎(FreeMarker、JasperReports、速率)。

    • SpEL模块:是Spring3.0后新增的模块,它提供了Spring Expression Language支持,是运行时查询和操作对象图的强大的表达式语言。

    3.2 Data Access/Integration(数据访问/集成)

        数据访问/集成层包括JDBC、ORM、OXM、JMS和Transactions模块,具体介绍如下:

    • JDBC模块:提供了一个JDBC的抽象层,大幅度的减少了在开发过程中对数据库操作的编码

    • ORM模块:对流行的对象关系映射API,包括JPA、JDO和Hibernate提供了集成层支持。

    • OXM模块:提供了一个支持对象/ XML映射的抽象层实现,如JAXB、Castor、XMLBeans、JiBX和XStream。

    • JMS模块:指Java消息传递服务,包含使用和产生信息的特性,自4.1版本后支持与Spring-message模块的集成。

    • Transactions事务模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。

    3.3 Web

        Spring的Web层包括WebSocket、Servlet、Web和Portlet模块,具体介绍如下:

    • WebSocket模块:Spring4.0以后新增的模块,它提供了WebSocket 和SockJS的实现,以及对STOMP的支持。

    • Servlet 模块:也称为Spring-webmvc模块,包含了Spring的模型—视图—控制器(MVC)和REST Web Services实现的Web应用程序。

    • Web模块:提供了基本的Web开发集成特性,例如:多文件上传功能、使用Servlet监听器来初始化IoC容器以及Web应用上下文。

    • Portlet 模块:提供了在portlet环境中使用MVC实现,类似Servlet模块的功能。

    3.4 其他模块

        Spring的其他模块还有AOP、Aspects 、Instrumentation 以及Test模块,具体介绍如下:

    • AOP模块:提供了面向切面编程实现,允许定义方法拦截器切入点,将代码按照功能进行分离,以降低耦合性

    • Aspects 模块:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向切面编程(AOP)框架。

    • Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。

    • Messaging模块:Spring4.0以后新增的模块,它提供了对消息传递体系结构协议的支持

    • Test模块:提供了对单元测试和集成测试的支持。

  • 相关阅读:
    PingCode DevOps 团队:企业CICD流水线可能会遇到的问题及解法
    开发者常用的API汇总,含免费次数
    07 内核开发-避免命名冲突经验技巧分享
    苦涩中的清香
    计算机视觉40例之案例12手写数字识别
    移动Web实训-测试题1
    unity urp 实现衣服绒毛效果
    混乱是阶梯:Web2与Web3的融合,也是COSO的窗口期
    2022我的前端面试总结
    selenium_定位输入框并输入值_id
  • 原文地址:https://blog.csdn.net/weixin_44606952/article/details/126640522