前言
哈喽大家好,我是卡诺,一名致力于成为全栈的全粘工程师!
相信每一个javaer都经历过Servlet、Seesion、Cookie等技术进行web项目开发。那个时候从项目伊始到项目完成,过程是艰苦的,维护是欲哭无泪的。直到遇见Spring,它将我们的开发从“刀工火种”带到“机械化”时代,如今SpringBoot大放光彩,使得项目开发直接一步封神。
今天呢!我们就一起来聊一聊Spring家族体系的核心基石-Spring Framework
项目!
本文已加入 【Spring系列】 专栏!
- 【再学一次Java】 专栏旨在重温Java知识,夯实基础,包含:Lambda、反射、注解、泛型、IO、JDBC、多线程等进阶知识;
- 【后端问题解决方案】 **专栏旨在为业务中遇到问题及BUG提供相关解决方案,包含:BUG处理、业务问题、解决方案等。
- 【Spring系列】 专栏基于最新版SpringFramework v5.3.16 ,包含:Spring学习、IOC、AOP等源码分析。
- 小伙伴如果有需要可以关注❤️一下哦,所有均专栏持续更新ing!
简介
Spring(SpringFramework,后续均简称为Spring) 是一个开源的、松耦合的,可以让Java创建企业级应用更加容易,提供了Java语言在企业环境中需要的一切,并支持类似于JVM的第二语言,如Groovy 和Kotlin,同时根据需要灵活的创建出不同的软件架构。
Spring的核心是IOC(用于组件解耦)和AOP(切面编程,可以实现业务和增强逻辑解耦)(IOC和AOP这个我们后面的文章细说)!除此之外,Spring还管理着应用中的组件Bean、事物控制、事件、监听器等,更是为我们提供了其他技术的整合包,方便我们项目开发使用。
Spring模块
Spring包含了大大小小二十多个模块,这些模块基本上覆盖了我们日常开发所需,模块展示如下:
分类 | 模块名 | 备注 |
核心容器(核心) | spring-core | Spring 基础 API 模块,如资源管理,泛型处理 |
spring-beans | Spring Bean 相关,如依赖查找,依赖注入 | |
spring-context | 为Spring核心提供大量扩展,事件驱动、注解驱动,模块驱动等 | |
spring-core | Spring 表达式语言模块(EL表达式) | |
spring-context增强 | spring-context-indexer | 通过在编译时创建候选对象的静态列表来提高大型应用程序的启动性能。在此模式下,作为组件扫描目标的所有模块都必须使用此机制。 |
spring-context-support | 包含支持缓存Cache(ehcache)、JCA、JMX、 邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。 | |
AOP(核心) | spring-aop | Spring核心模块,包含动态代理,AOP 字节码提升 |
spring-aspects | 集成AspectJ,为Spring提供多种AOP实现方法 | |
spring-instrument | Spring的Instrumentation模块提供为JVM添加代理(agent)的功能。主要作用于JVM启动时,生成代理类,并通过运行时修改类的字节码形式,实现AOP功能 | |
日志框架 | spring-jcl | 外部引入的日志框架不断变化,Spring这里采用统一的框架进行维护管理 |
数据控制访问 | spring-jdbc | JDBC模块,简化JDBC编程 |
spring-orm | orm框架支持,集成JPA、Hibernate,用于数据访问,资源管理等 | |
spring-oxm | Object-To-XML-Mapping,XML 编列(xml序列化/反序列化) | |
spring-r2dbc | r2dbc响应式数据库 | |
spring-tx | 事务控制模块 | |
消息服务 | spring-messaging | Spring消息服务的统一实现标准,包括JMS、kafka、Rabbit MQ、Active MQ |
spring-jms | Java Messaging Service 控制消息接受和发送,如:Apache Active MQ等消息中间件 | |
web | spring-web | 提供基础web支持 |
spring-webflux | 非堵塞函数式Reactive Web框架,可以用来建立异步的、非阻塞事件驱动的服务 | |
spring-webmvc | WebServlet模块,实现了Model View Controller应用 | |
spring-websocket | 为socket通信提供相关支持 | |
测试框架 | spring-test | 包含Mock,TextContext测试上下文,为测试提供支持 |
模块关系
总结
- 本章主要概述SpringFramework基本能力,并介绍了Spring各个模块的含义,以及模块之间的关系;
- Spring的核心模块主要是:
spring-core
、spring-beans
、spring-aop
、spring-context
、spring-expression
,也是我们该系列接下来要深入的主要模块。
关联文章
最后
- 感谢铁子们耐心看到最后,如果大家感觉本文有所帮助,麻烦给个赞????或关注➕;
- 由于本人技术有限,文章和代码可能存在错误,希望大家评论指出,万分感激????;
- 同时也欢迎大家一起讨论学习前端、Java知识,一起卷一起进步。