Spring框架是最流行的J2EE框架之一。
在本文中,我们将了解以下内容:
- Spring框架架构
- Spring核心部件
- spring框架下的各种项目。
我查看了Spring框架、Servlet、JSP和JSF的Google趋势图。很明显,Spring远远领先于所有其他J2EE技术。
Spring框架和Google Trends
目录
什么是Spring框架?
Spring是Java企业版最流行的框架之一。
全世界的开发人员都使用Spring开发可靠和高质量的应用程序。
Spring框架是由罗德·约翰逊设计的。从那时起,Spring已经成为Java世界中EJB模型的替代技术。
您可以使用spring框架创建不同类型的应用程序。
Spring核心概念和DI、IoC、AOP
- 不了解什么是Spring框架,就不可能理解什么是Spring框架依赖注入和控制反转. 依赖注入也称为DI,是控制反转(IoC)的一种类型。
- 控制反转在以后的编程中,其他对象的实现可能不依赖于它们的面向对象的编程原理。
- 依赖注入–;是一种结构设计模式的组合,其中对于应用程序的每个功能都有一个,即一个条件独立的对象(服务),它可以使用接口已知的其他对象(依赖项)。依赖项在服务创建时被传输(实现)到服务。在这种情况下,我们将一个类的元素引入另一个类。实际上,DI是通过将参数传递给构造函数或使用setter来实现的。实现这种方法的库也称为IoC容器。
- 面向切面编程允许您区分应用程序中的交叉(功能)功能的编程范例。这些跨多个应用程序节点的功能称为横切关注点,这些横切注解与应用程序的直接业务逻辑分离。在OOP中,关键单元是类,而在AOP中,关键元素是方面。DI有助于将应用程序类分离成单独的模块,AOP有助于将横切关注点与它们影响的对象分离开来。
Spring框架架构
springframework被分成许多独立的模块,这允许您决定在应用程序中使用哪些模块。下图展示了Spring框架架构中最重要的模块。
让我们逐一了解一下spring生态系统模块。
Spring框架核心组件
Spring的核心容器由四个模块组成:SpEL、Context、Core、bean。这些元素的说明如下:
- SpEL模块提供了一种功能强大的表达式语言,用于在执行过程中操作对象。
- Context是在bean和Core的基础上构建的,允许您访问在设置中定义的任何对象。Context模块的关键元素是ApplicationContext接口。
- 核心模块提供了框架的关键部分,包括IoC和DI属性。
- Bean模块负责创建和管理Spring Bean应用程序上下文是8211单元结构。
Spring框架Web
Spring框架的Web层由Web、webmvc、websocket、webportlet等组成。
- Web模块提供下载文件、创建Web应用程序、restweb服务等功能。
- Web MVC包含SpringMVCweb应用程序的实现。
- websocket通过在Web应用程序中使用websocket为客户机和服务器之间的通信提供支持。
- webportlet为MVC实现提供了Portlet环境
Spring框架数据访问
数据访问/集成容器由JDBC、ORM、OXM、JMS和事务模块组成。
- JDBC提供了JDBC的抽象层,并消除了开发人员手动注册与连接到数据库相关联的单调代码的需要。
- Spring对象关系映射提供与流行的ORMs(如Hibernate、JDO)的集成,这些orm是JPA的实现。
- OXM模块负责链接Object/XML和XMLBeans、JAXB等。
- JMS(Java消息传递服务)模块负责创建、发送和接收消息。
- 事务支持对实现某些方法和pojo的类进行事务管理。
其他模块
Spring还包括许多其他重要的模块,比如AOP、方面、工具、消息传递和测试。
- AOP实现面向切面的编程,并允许使用AOP的全部功能。
- Aspects模块提供与AspectJ的集成,AspectJ也是一个强大的AOP框架。
- 指令插入负责支持在服务器应用程序中使用的类指令插入和类装入器。
- 消息传递模块提供STOMP支持。
- 最后,测试模块使用TestNG或JUnit框架提供测试。
Spring5特色
Spring5号带来了大量更新。的一些重要特征Spring5是:
- 支持Java8、Java9、JavaEE7、JavaEE8、Servlet4.0、BeanValidation2.0和JPA2.2。我很高兴看到Spring正在努力赶上正在使用的主要技术的最新版本。
- 使用新模块&Spring Jcl改进了日志记录。
- 文件操作使用nio2流,因此提高了性能。
- 支持Reactor 3.1 Flux和Mono以及rxjava1.3和2.1作为Spring Mvc控制器方法的返回值。
- 支持Kotlin、projectlombok、JSON绑定API作为Jackson和GSON的替代。
- SpringWebFlux–;Spring开始反应。
- 支持六月五号
- 通过Kotlin提供函数式编程支持。
您可以在我们的GitHub存储库.
参考文献:Spring官网,Spring参考文档