😸个人主页👉:神兽汤姆猫
📖系列专栏:开发语言环境配置 、 Java学习 、Java面试 、Markdown等
🔔感言💭:学习上的每一次进步,均来自于平时的努力与坚持。
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。
前言
Spring的目的即是使Java EE开发更加容易,Spring提供了更完善开发环境的一个框架,可以为POJO对象提供企业级的服务,它提供的功能贯穿了项目开发中的表现层、业务层与持久层。它是对Java EE的补充。在学习使用Spring时,我们需要把它当成一种生态体系,而不是一个简单的开发框架。
Spring特性
编辑
此处引用Spring官网的解释:
Core technologiesopen in new window: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.
核心技术:包括依赖注入、事件模型、资源处理、国际化、数据绑定和验证、类型转化、spring表达式、面向切面编程。核心技术是一切的关键,后边衍生的多个特性都是依托于核心技术。
Testingopen in new window: mock objects, TestContext framework, Spring MVC Test,
WebTestClient
.Data Accessopen in new window: transactions, DAO support, JDBC, ORM, Marshalling XML.
Spring MVCopen in new window and Spring WebFluxopen in new window web frameworks.
Integrationopen in new window: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.
Languagesopen in new window: Kotlin, Groovy, dynamic languages.
Spring组件
Spring基于模块化实现,每个模块都对应不同的jar包。
Spring 5版本组件图:
Spring常用jar包
包名 | 备注 |
Spring Core | Spring核心工具包,封装了 Spring 框架的底层部分,包括资源访问、类型转换及一些常用工具类。 |
Spring Beans | Spring IoC的实现,提供了框架的基础部分,包括控制反转和依赖注入,通过XML配置文件或注解的形式实现对Spring Bean的管理。 |
Spring Context | Spring上下文环境模块,它是建立在Spring Core和Spring Beans模块基础之上的,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等。用于对Bean关系的管理和维护等。ApplicationContext 接口是上下文模块的焦点。 |
Spring spEL | Spring表达式语言模块,提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。 |
Spring Aspects | Spring对AspectsJ的整合和支持,是一个功能强大成熟的面向切面工程(AOP)框架。 |
Spring Context Support | Spring Context的扩展支持,用于支持MVC方面的功能。为集成common提供支持,将第三方库导入Spring应用上下文,特别是缓存(EhCache、JCache)和调度(CommonJ、Quartz))。 |
Spring Expression Language | Spring的表达式语言 |
Spring Framework Bom | 处理不同的项目依赖不同版本的Spring引起的版本冲突问题 |
Spring Instrument | Spring针对服务器的代理接口 |
Spring Instrument Tomcat | Spring针对Tomcat的集成 |
Spring JDBC | Spring针对JDBC的封装,提供一个JDBC抽象层即一个JDBC样例模板,使用它可以免去许多繁琐的工作 |
Spring JMS | Spring为简化JMS API的使用而做的封装,指 Java 消息服务,提供一套 “消息生产者、消息消费者”模板用于更加简单的使用 JMS,JMS 用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 |
Spring Messaging | Spring集成Messaging API和消息协议, 该模块提供了对消息传递体系结构和协议的支持。 |
Spring jcl | 日志框架集成的模块。 |
Spring ORM | Spring整合第三方ORM的实现,数据访问和集成模块,提供流行的对象-关系映射API提供集成层,包括Hibernate、MyBatis、JDO、Spring的JPA等。 |
Spring OXM | Spring对Object/XML映射的抽象层实现支持,例如JAXB、Castor、XMLBeans、JiBX 和 XStream等。可以让Spring在Java和XML之间方便的切换,即将 Java 对象映射成 XML 数据,或者将XML 数据映射成 Java 对象。 |
Spring TX | Spring为JDBC、JDO、JPA、Hibernate等提供的一致的声明式事务管理和编程式事务管理 |
Spring Web | 基于Spring构建Web应用开发所需的核心类,包括自动载入WebApplicationContext、Struts于JSF集成、文件上传、Filter类和其他辅助工具类 |
Spring WebMVC | 包含Spring MVC框架相关的所有类,例如国际化、标签、Theme、视图展现的FreeMarker、Tiles、Velocity、JasperReports、XSLT相关类。如果你的应用使用了独立的MVC框架,则不需要使用这个jar包中的任何类 |
Spring WebSocket | 提供了简单的接口,用户只要实现响应的接口就可以快速的搭建 WebSocket Server,从而实现双向通讯。 |
Spring WebFlux | 与Spring MVC不同,它不需要Servlet API,是完全异步且非阻塞的,并且通过Reactor项目实现了Reactive Streams规范。Spring WebFlux 用于创建基于事件循环执行模型的完全异步且非阻塞的应用程序。 |
Spring Test | Spring 支持 Junit 和 TestNG 测试框架,而且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。 |
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。