Spring采用依赖注入和AOP的旗舰技术替代EJB严格的企业Java开发规则,这个想法很快引起了已经在寻找替代解决方案的开发人员的兴趣,约定而不是配置的想法是使用Spring BOOT快速启动企业解决方案的主要推动力。

简而言之,在功能丰富性方面,Spring在核心JEE支持计划的中间件战争中似乎领先一步。

Java Spring框架概述

作为重型企业Java技术的替代方案,Spring提供了一种更轻、更精简的编程模型。Spring 授权POJO参与企业编程上下文,其功能类似于EJB提供的规范。J2EE的 EJB 是一个沉重的企业组件,但随着时间的推移,它也在不断发展。在JEE7之后,核心 JEE平台也开始通过EJB提供一个简单的面向POJO的编程模型。不仅如此,今天的EJB还支持DI和AOP。但是,应该记住,Spring基本上是EJB规范的实现,是其实现的替代方案。Spring和EJB实现(不是规范)的游乐场是 JEE 竞技场,如果从场景中删除规范,Spring和 EJB都将消失。因此,两者之间的冲突在于它们的实现而不是规范。有许多EJB实现,例如由 JBoss、Glassfish、Wildfly 等应用程序服务器实现的。

Spring作为企业开发的Java平台,在特性、功能和易于快速开发方面提供了全面的基础设施支持。Spring坚信将POJO融入企业领域,彻底改变了企业解决方案的开发。选择一个POJO并以非侵入方式应用带有注释的企业服务。这就是POJO需要指定为企业组件的全部内容。此外,Spring鼓励了很多良好的面向对象设计原则,例如MVC、依赖注入和AOP等。此外,Sprin还提供了许多额外的功能,例如 spring-test、spring-BOOT、合并任何其他框架的灵活性等等。

Spring框架模块

核心容器由spring-core、spring-beans、spring-context、spring-context-support、spring-expression等模块组成。

1、spring-core和spring-beans模块构成了框架的基本部分,包括IoC(控制反转)和依赖注入特性。IoC的思想表明,框架将进行调用,而不是应用程序调用方法。这个想法颠倒了程序流的控制。因此,名称反转控制,或简称IoC。但是,IoC是一个更广泛的术语,依赖注入(DI) 是其实现的一种形式。DI通过构造函数和 getter/setter注入来注入对象属性,从而消除了软件组件之间的紧密耦合。还有另一种类型的注入,称为接口注入,Spring不支持。有一个复杂的工厂模式实现称为BeanFactory,它有助于将配置和规范依赖与程序逻辑分离。

2、spring-context模块建立在spring-core和spring-beans模块之上,并提供了以 JNDI样式访问对象的方法。从spring-bean模块继承的特性有助于它添加对国际化、资源加载和事件传播的支持。此模块支持的其他JEE功能包括EJB、JMX和远程处理。ApplicationContext是从这个模块派生的主接口。spring-context-support 模块提供了集成许多第三方库的方式,例如用于报告的JasperReport、用于调度的Quartz、用于邮件的JavaMail和用于缓存的EhCache。

3、spring-expression模块提供了强大的表达式语言(由统一EL指定,根据JSP 2.1 规范)用于在运行时查询和操作对象图。

4、spring-aop 模块提供面向方面编程的实现。面向方面编程(AOP)的要点是将横切关注点从业务逻辑中分离出来,因为尽管它们参与了程序的整体操作,但它们在概念上是分开的。一个非常常见的例子是记录过程,它可能会跨越业务逻辑的关注点,因为它在过程中没有明显的需求,但有助于记录可能有助于回溯到某个检查点或从长远来看调试程序的事件。

5、spring-messaging 模块是 Spring 中基于消息的应用程序的基础。它提供注释以将消息映射到类似于基于注释的 Spring MVC 编程模型的方法。

数据访问/集成层包含对 JDBC、ORM、OXM、JMS 和事务的支持。

spring-jdbc 模块提供 JDBC 抽象。

spring-tx 模块支持所有 POJO 的编程和声明式事务。

spring-orm 模块为流行的 ORM API 提供支持,例如 JPA、JDO、Hibernate 等。

spring-oxm 模型用于对象/XML 映射实现,例如 JAXB、XStream、Castor 和 XMLBeans。

spring-jms 模块是 Java 消息服务 (JMS) 的抽象。它为生产和消费消息提供支持。在 Spring 4.1 中,它与 spring-messaging 模块集成。

6、Web层由四个模块组成:spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet。

spring-web 模块是 Web 功能集成的基础,例如多部分文件上传功能和使用 Servlet 侦听器初始化 IoC 容器。它还包含 HTTP 客户端和相关部分以支持远程处理。

spring-webmvc 模块为 Web 应用程序的 MVC 和 REST 服务提供支持。

spring-websocket 模块提供对 RFC 6455 定义的 Web 套接字协议的支持。这为 Web 应用程序提供了支持客户端和服务器之间的全双工通信的能力。

spring-webmvc-portlet 模块为 Portlet 环境提供了 MVC 实现的支持,类似于 spring-webmvc 模块中基于 servlet 的实现。

7、spring-test 模块为单元测试、与 JUnit 或 TestNG 相关的集成测试提供支持。

Spring Boot

谈论 Spring 框架而不提及 Spring Boot 是不公平的,因为没有 Spring Boot 就没有理由开始一个 Spring 项目。无论你只是想玩 Spring 还是想构建一个生产就绪的应用程序都没有关系;建议始终使用 Spring Boot。

将 Spring Boot 视为一个套件,它提供了一组预配置的库,它们的所有依赖项都得到满足,以减少样板配置。这是创建开箱即用的生产就绪应用程序的最快方法。Spring Boot 所做的是它遵循配置的约定,并认为相应地选择一组库。这是在程序员的一点干预下完成的。如果你有在使用任何框架时手动解决依赖关系的经验,你就会知道遇到依赖关系是多么令人恼火和痛苦。使用 Spring Boot,我们可以做的是,例如,只需提及一个想要创建的应用程序的类型,例如 Web 应用程序,以及从意见堆栈中需要的技术; Spring Boot 负责其余的工作。它导入所需的库、它们的依赖项以及项目类型通常需要的所有依赖项,例如应用程序服务器等。

打包和部署生产就绪的应用程序也很轻松。几乎可以忘记,一旦创建了项目 jar,应用程序实际上是在嵌入式应用程序服务器中运行的。只需运行 jar 文件,该应用程序像独立应用程序一样运行。

简而言之,这就是 Spring Boot 提供的功能。Spring Boot 足够灵活,可以在必要时进行配置调整。

这就是 Spring 框架与 Spring Boot 相关联的原因,但是,这并不意味着 Spring 框架不能单独使用,Spring Boot 只是让它更容易使用。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部