概述

  • Spring是分层的企业级full-stack轻量级开源框架,以IoCAOP为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,并整合了开源世界中众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

控制反转 IoC(Inversion of Control )

  • 控制反转 就是对象之间的依赖关系由容器来创建,对象之间的关系本来是由我们开发者自己创建和维护的,在我们使用Spring框架后,对象之间的关系由容器来创建和维护,将开发者做的事让容器做,这就是控制反转。BeanFactory接口是Spring Ioc容器的核心接口。
  • 换句话说,就是指new实例工作不再由程序员来做,而是交给Spring容器来做。new实例工作的控制权不再由程序员掌控。

面向方面的程序设计 AOP(Aspect-Oriented Programming)

  • Spring 框架的一个关键组件是面向方面的程序设计(AOP)框架。
  • **一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。**有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。
  • 在 OOP 中模块化的关键单元是类,而在 AOP 中模块化的关键单元是方面。AOP 帮助你将横切关注点从它们所影响的对象中分离出来,然而依赖注入帮助你将你的应用程序对象从彼此中分离出来。
  • Spring 框架的 AOP 模块提供了面向方面的程序设计实现,可以定义诸如方法拦截器和切入点等,从而使实现功能的代码彻底的解耦出来。

体系结构

  • Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
  • 下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。

核心容器 模块

  • Core 模块

    • 提供了框架的基本组成部分。

      • 控制反转(IoC)
      • 依赖注入(DI)
  • Beans 模块
    • 提供 BeanFactory,工厂模式的经典实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。

      • BeanFactory 接口
  • Context 模块
    • 建立在由core和 beans 模块的基础之上,它是访问定义和配置任何对象的媒介。

      • ApplicationContext 接口
  • SpEL模块(Spring Expression Language)
    • 提供了强大的表达式语言,用于在运行时查询和操作对象图。

      • EL 表达式

数据访问/集成 模块

  • JDBC 模块(Java Data Base Connectivity)

    • 提供了JDBC抽象层,它消除了冗长的JDBC编码和对数据库供应商特定错误代码的解析。
  • ORM 模块(Object Relational Mapping)
    • 提供了对流行的对象关系映射API的集成,包括JPA、JDO和Hibernate等。通过此模块可以让这些ORM框架和spring的其它功能整合,比如前面提及的事务管理。
  • OXM 模块(Object XML Mapping)
    • 提供了对OXM实现的支持,比如JAXB、Castor、XML Beans、JiBX、XStream等。
  • JMS 模块(Java Message Service)
    • 包含生产(produce)和消费(consume)消息的功能。从Spring 4.1开始,集成了spring-messaging模块。
  • Transactions 模块
    • 事务模块为实现特殊接口类及所有的 POJO 支持编程式和声明式事务管理。

      • 注:编程式事务需要自己写beginTransaction()、commit()、rollback()等事务管理方法,声明式事务是通过注解或配置由spring自动处理,编程式事务粒度更细。

Web 模块

  • Web 模块

    • 提供面向web的基本功能和面向web的应用上下文,比如多部分(multipart)文件上传功能、使用Servlet监听器初始化IoC容器等。它还包括HTTP客户端以及Spring远程调用中与web相关的部分。
  • Web-MVC 模块
    • 为web应用提供了模型视图控制(MVC)和REST Web服务的实现。

      • SpringMVC框架
  • Web-Socket 模块
    • 为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
  • Web-Portlet 模块
    • 提供了用于Portlet环境的MVC实现,并反映了spring-webmvc模块的功能。
      其他

其他模块

  • AOP 模块

    • 提供了面向方面的编程实现。

      • 方法拦截器
      • 切点
  • Aspects 模块
    • 提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架
  • Instrumentation 模块
    • 在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
  • Messaging 模块
    • 为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
  • Testing 模块
    • 支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。

Spring框架(1) —— 概述相关推荐

  1. spring框架的概述以及spring中基于XML的IOC配置——概念

    1.spring的概述     spring是什么     spring的两大核心     spring的发展历程和优势     spring体系结构 2.程序的耦合及解耦     曾经案例中问题   ...

  2. Spring框架第一天

    ## 今天课程:Spring框架第一天 ## ---------- **Spring框架的学习路线** 1. Spring第一天:Spring的IOC容器之XML的方式,Spring框架与Web项目整 ...

  3. 搭建一个Spring框架

    目录 1. Spring框架的概述 2.搭建Spring框架 pom.xml配置 Demo.java applicationContext.xml DemoTest.java 1. Spring框架的 ...

  4. Spring框架简单介绍

    1.Spring框架的概述: Spring是一个开源代码的设计层面框架,解决的是业务逻辑和其他各层次的松耦合问题,主要的思想是面向接口编程. Spring的核心是控制权反转(IOC)和面向切面(AOP ...

  5. [Spring5]Spring框架概述

    Spring框架概述 1.Spring是轻量级的开源的JavaEE框架 2.Spring可以解决企业应用开发的复杂性 3.Spring有两个核心部分:IOC和Aop a.IOC:控制反转,把创建对象过 ...

  6. Spring框架概述(快速入门)

    Spring 框架概述: 目录 Spring 框架概述: 1.Spring 是轻量级的开源的 javaEE 框架 2.Spring 有两个核心部分:IOC 和 AOP: 3.Spirng 特点: 4. ...

  7. Spring框架学习-Spring和IOC概述

    一:什么是Spring框架? spring是一个分层的javase/EEfull-stack(一站式)轻量级的java开源框架.是为了解决企业开发的复杂性而创建的.框架的主要优势是分层架构,Sprin ...

  8. Spring框架概述

    Spring框架概述 Spring是一个Service层的框架,可以整合许多其它框架进行工作. Spring的主要技术是 IOC(DI) AOP IOC(DI) - 控制反转(依赖注入) AOP - ...

  9. 【Spring】(1)Spring概述:什么是Spring框架?为什么要用Spring框架?

    两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在 ...

  10. Spring从入门到精通--(1)Spring框架概述

    Spring从入门到精通–(1)Spring框架概述 作者:进击攻城狮 个人主页:欢迎访问我的主页 首发时间:2022年8月2日星期二 订阅专栏:Spring入门到精通 个人信条:星光不问赶路人,岁月 ...

最新文章

  1. Chem. Sci. | SyntaLinker: 基于Transformer神经网络的片段连接生成器
  2. 2013河北省职称计算机应用能力考试操作题答案,2013河北省职称计算机应用能力考试操作题步骤详解(部分).doc...
  3. android的数据存储方式有哪几种方式,Android存储数据的5种方式
  4. linux内核网络协议栈--kernel bridge转发逻辑(十一)
  5. erlang在NotePad++下的高亮
  6. delphi获取当前计算机所有盘符
  7. css3实现烟花效果,CSS3 带颤动效果的简易烟花动效
  8. 工作130:computed
  9. 1700x关闭超线程超频_转发分享一个超频技术新手知识BIOS设置指南
  10. 常用设计模式的小结和实际中的应用
  11. 二叉树类图_数据结构(十四)——二叉树
  12. FreeTextBox使用
  13. VB.NET (VB2008)的免费下载网址
  14. 【数据结构初阶-oj】入门二叉树的入门oj
  15. 【托业】【新托业TOEIC新题型真题】学习笔记11-题库六-P7
  16. WMB系列-消息流中节点监视与MM+的使用注意事项
  17. 项目源码+付费进群系统分享
  18. BS架构及其运行原理
  19. 氮化镓助力快充小型化,KEMET聚合物钽电容大显身手
  20. 关于矩阵胶囊与EM路由的理解(基于Hinton的胶囊网络)

热门文章

  1. Codeforces round #649 B. Most socially-distanced subsequence
  2. 简单入门SSO单点登陆——认证服务
  3. Android群英传笔记——第二章:Android开发工具新接触
  4. axisfault,faultcode:server.userException异常的解决办法
  5. 负载均衡权重系数算法 C++
  6. display和visibility的用法和区别
  7. xapp1171学习笔记
  8. 1.编写程序判定给定年份是否为闰年。年份由键盘输入。
  9. FB推出App Center背后的秘密
  10. 微信支付 v3 下单获取prepay_id