Spring 框架教程

Spring Framework是最流行的Java EE框架之一。本文面向希望学习Spring框架体系结构的Java开发人员,它的核心组件以及属于Spring框架伞的各种项目。

只需查看Spring Framework,Servlet,JSP和JSF的Google Trends图表。很明显,Spring在所有其他Java EE技术方面领先一步。

Spring Framework - Google趋势

目录[ 隐藏 ]

  • 1 Spring Framework

    • 1.1 Spring框架 - DI,IoC,AOP
    • 1.2 Spring框架体系结构
    • 1.3 Spring框架核心组件
    • 1.4 Spring Framework Web
    • 1.5 Spring框架数据访问
    • 1.6 Spring框架其他模块
    • 1.7 Spring 5功能

Spring框架

Spring是Java企业版最流行的框架之一。全世界的开发人员都使用Spring开发可靠和高质量的应用程序。Spring框架由Rod Johnson设计。从那时起,Spring已成为Java模型中Java世界的替代技术。您可以使用spring框架创建不同类型的应用程序。

Spring框架 - DI,IoC,AOP

  • 如果不了解什么是依赖注入和控制反转,就不可能理解什么是Spring Framework 。依赖注入也称为DI,是控制反转(IoC)的类型之一。
  • 控制反转 - 这是面向对象编程的原理,其中程序的对象不依赖于其他对象的具体实现,但可能知道它们的抽象(接口)以便以后的交互。
  • 依赖注入 - 结构设计模式的组合,其中对于应用程序的每个功能,存在一个有条件独立的对象(服务),其可能需要使用接口已知的其他对象(依赖性)。依赖关系在创建时转移(实现)到服务。在这种情况下,我们将一个类的元素引入另一个类。实际上,DI是通过将参数传递给构造函数或使用setter来实现的。实现此方法的库也称为IoC容器。
  • 面向方面编程 - 一种编程范例,允许您区分应用程序中的交叉(功能)功能。跨越多个应用程序节点的这些函数称为横切关注点,这些横切注释与应用程序的直接业务逻辑分离。

    在OOP中,关键单元是类,而在AOP中,关键元素是方面。DI有助于将应用程序类分离为单独的模块,AOP有助于将交叉问题与它们所影响的对象分开。

Spring框架体系结构

Spring Framework分为许多单独的模块,允许您决定在应用程序中使用哪些模块。下图说明了Spring Framework架构中最重要的模块。

让我们逐个研究一下春季生态系统模块。

Spring Framework核心组件

Spring的Core容器包含四个模块:SpEL,Context,Core,Beans。这些元素的描述如下:

  1. SpEL模块为执行期间操作对象提供了强大的表达式语言。
  2. Context是在Beans和Core的基础上构建的,允许您访问设置中定义的任何对象。Context模块的关键元素是ApplicationContext接口。
  3. Core模块提供了框架的关键部分,包括IoC和DI属性。
  4. Bean模块负责创建和管理Spring Beans - 是应用程序上下文结构单元。

Spring Framework Web

Spring框架Web层由Web,Web-MVC,Web-Socket,Web-Portlet等组成。

  1. Web模块提供下载文件,创建Web应用程序,休息Web服务等功能。
  2. Web-MVC包含用于Web应用程序的Spring MVC实现。
  3. Web-Socket使用Web应用程序中的Web-Sockets为客户端和服务器之间的通信提供支持。
  4. Web-Portlet通过portlet环境提供MVC实现

Spring框架数据访问

数据访问/集成容器由JDBC,ORM,OXM,JMS和Transactions模块组成。

  1. JDBC提供了一个JDBC抽象层,使开发人员无需手动注册与连接数据库相关的单调代码。
  2. Spring ORM提供与Hibernate,JDO,JPA等流行ORM的集成。
  3. OXM模块负责链接Object / XML - XMLBeans,JAXB等。
  4. JMS(Java消息传递服务)模块负责创建,发送和接收消息。
  5. 事务支持实现某些方法和POJO的类的事务管理。

Spring Framework其他模块

Spring还包括许多其他重要的模块,例如AOP,Aspects,Instrumentation,Messaging和Test。

  1. AOP实现面向方面的编程,并允许使用整个AOP功能库。
  2. Aspects模块提供与AspectJ的集成,AspectJ也是一个功能强大的AOP框架。
  3. Instrumentation负责支持在服务器应用程序中使用的类检测和类加载器。
  4. Messaging模块提供STOMP支持。
  5. 最后,Test模块使用TestNG或JUnit Framework提供测试。

Spring 5 功能

Spring 5 带来了大量的更新,Spring 4 . 一些重要特点Spring 5 是:

  1. 支持Java 8,Java 9,Java EE 7,Java EE 8,Servlet 4.0,Bean Validation 2.0和JPA 2.2。我很高兴看到Spring正在努力追赶所使用的主要技术的最新版本。
  2. 使用新模块改进了日志记录 - spring-jcl。
  3. 文件操作使用NIO 2流,从而提高了性能。
  4. 支持Reactor 3.1 Flux和Mono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
  5. 支持Kotlin,Project Lombok,JSON Binding API作为Jackson和GSON 的替代品。
  6. Spring WebFlux - 春天变得活跃。
  7. 支持JUnit 5
  8. 通过Kotlin提供功能编程支持。

您可以在我们的GitHub存储库上查看Spring Projects 。

参考文献:Spring官方网站,Spring参考文档

Spring 框架教程相关推荐

  1. spring框架教程 Spring开发实例 spring mvc视频教程下载

    基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...

  2. Spring框架教程集合

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...

  3. 2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通

    第一章:认识Spring spring思维导图 01p/102p Spring认识框架 02p/102p Spring官网浏览以及资源介绍 03p/102p 框架内部模块 第二章 IoC控制反转 04 ...

  4. spring框架_一篇文章带你理解Spring框架

    虽然现在流行用SpringBoot了,很多配置已经简化和封装了,但是对于Spring的一些基础我们了解一些是对我们自己的架构思想很有帮助的!接下来和笔者一起来探讨一下Spring框架吧! 1.什么是S ...

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

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

  6. spring框架之面试

    spring框架之面试 Spring的主要问题,这些问题有可能在你下次面试时就会被问到.对于本文中未提及的Spring其他模块,我会单独分享面试的问题和答案. 欢迎大家向我推荐你在面试过程中遇到关于S ...

  7. 超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享...

    超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享 DI框架 Google-Guice入门介绍 转载于:https://www.cnblogs.com ...

  8. Spring教程:使用Spring框架和Spring Boot创建Hello World REST API

    由于Java社区对早期版本的Enterprise Java感到失望,因此创建了Spring Framework . 从那时起,它已经发展成为一个巨大的生态系统,可以解决构建基于Web的Java应用程序 ...

  9. Spring教程 - Spring核心框架教程

    Spring教程 - Spring核心框架教程 Spring是最广泛使用的Java EE框架之一.我已经在Spring Tutorial上写了很多内容,这是一篇摘要文章,它将作为索引按顺序完成所有这些 ...

最新文章

  1. 让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
  2. 《数字逻辑设计与计算机组成》一3.3 加法器
  3. Java进制转换示例
  4. 然并卵:BF 科普 BF 解释器的 JS 实现
  5. 模型融合之stacking方法
  6. 螺旋矩阵O(1)根据坐标求值
  7. 艾伟_转载:WPF/Silverlight陷阱:XAML自定义控件的嵌套内容无法通过名称访问
  8. Layui layer详细参数解释说明
  9. Android SDK中tools详解
  10. Linux下MySQL基础使用命令
  11. python笔记3:依次输入3个数排序打印(升序)
  12. Windows批量快速删除大量文件
  13. UVALive-3713 Astronauts (2-SAT)
  14. PhotoShop中蒙版介绍
  15. python re.split 空格_str.split和re.split中空格的区别
  16. 飞塔防火墙的配置与策略
  17. 【项目】出库流程记录
  18. pytorch学习 -- 反向传播backward
  19. 第3章 枚举!很暴力
  20. Python3安装xlrd

热门文章

  1. MySQL入门 (一) : 资料库概论与MySQL的安装
  2. Node.js listen EADDRINUSE 错误解决 How to solve nodejs Error: listen EADDRINUSE
  3. Facebook轮播连结广告可展示5个图像与连结
  4. jquery csv2table 插件
  5. 【图说word】宏二
  6. Tpcc-MySQL测试
  7. mac下常用数据库及nginx笔记
  8. Hadoop—如何查看HDFS默认的ns命名空间和所有命名空间列表
  9. Java-重载和重写的区别
  10. Ubuntu 添加、删除ppa源