细说Spring框架之核心01-概述

官网:https://spring.io/projects/spring-framework
文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/index.html
目录
Spring框架是什么
Spring框架是整个Spring生态的核心基础,其他Spring生态项目都需要使用Spring框架提供的核心功能,如:IoC,AOP,配置注解化等等。
因此,深入学习并理解Spring框架的原理是掌握Spring其他生态项目的关键。
Spring框架提供了构建Spring生态的基础功能,具体可以划分为:
- 核心功能:IoC容器,事件处理,资源管理,国际化支持,校验,数据绑定,类型转换,Spring表达式语言(SpEL),AOP
- 测试:单元测试,集成测试,Spring MVC测试框架
- 数据访问:事务管理,DAO,JDBC,对象关系映射(ORM),对象XML映射(Object-XML Mapping)
- Web Servlet:Spring MVC,REST客户端,WebSocket
- Web Reactive:Spring WebFlux,WebClient
- 服务集成: 远程调用(RMI)及WebService,JMS,AMQP,JCA,JMX,邮件,任务指定和调度,缓存抽象
- 语言支持:Kotlin,Apache Groovy
Spring框架通过一个组件化的架构实现上述功能,包含如下模块:
- spring-core,spring-beans,spring-context,spring-aop,spring-aspects,spring-expression:框架基础,提供了IoC,AOP,Spring表达式的支持
- spring-test:Spring提供的Mock测试框架
- spring-jdbc,spring-orm,spring-tx:数据访问,事务管理
- spring-web,spring-webmvc,spring-websocket:一个构建于Servlet API之上的Web框架,这也是Spring框架很早就支持的,Spring框架也因此开始流行
- spring-webflux:Spring对响应式技术栈的支持
- spring-jms,spring-messaging:服务集成

更多Spring框架模块详情参见:https://github.com/spring-projects/spring-framework 。
为什么要使用Spring框架
对于编程框架而言,其主要目的在于提高编程效率,框架对一些底层的、重复性的功能进行组件化封装,便于快速开发应用层软件系统。
因此,在不同的编程领域或语言平台,都会存在这样或那样被称为“框架”的东西,如:Netty专注于网络编程,MyBatis专注于ORM,Shiro专注于认证授权。
Spring框架也不例外,它作为一个Java平台的编程框架,实现了对Servlet编程的封装,支持面向切面编程,支持数据访问及ORM映射等,这些功能有助于我们可以快速地开发出一个能稳定运行的服务。
如何使用Spring框架
Spring框架最核心的基础是IoC,基于IoC支持AOP、封装Servlet、实现数据访问和ORM映射等等。
可以说,Spring框架涵盖了丰富多样的应用场景,我们不仅仅需要学习它提供的功能,还要掌握每个功能背后实现的原理,以及其中使用的通用软件开发原则和设计模式。Spring框架中很多非常实用的功能是通过底层JDK提供的方法实现的,比如:注解、动态代理等等,非常值得借鉴和学习。
至于如何使用Spring框架,需要根据实际的应用需求,引入对应模块的依赖即可。例如:如果只需要使用Spring框架的核心功能,只需要在项目的pom文件中添加“spring-context”依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
显然,“spring-context”模块依赖了其他4个基础模块:“spring-aop”,“spring-beans”,“spring-core”和“spring-expression”。

【参考】
https://spring.io/projects
细说Spring框架之核心01-概述的更多相关文章
- Spring框架的核心功能之AOP技术
技术分析之Spring框架的核心功能之AOP技术 AOP的概述 1. 什么是AOP的技术? * 在软件业,AOP为Aspect Oriented Programming的 ...
- spring框架 AOP核心详解
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- 控制反转是Spring框架的核心。
早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题.他总结出是依赖对象的获得被反转了.基于这个结论,他为控制反转创造了一个更好的名字:依赖注入.许多非凡的应用(比H ...
- Spring框架的核心功能之AOP概述
1. 什么是AOP的技术? * 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 * AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构 ...
- Spring框架学习路线和概述
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合. Spring框架的概述: 1. 什么是Spring Spring是分层的JavaSE/EE ...
- Spring 框架的核心功能之AOP技术
1. AOP 的概述 AOP, Aspect Oriented Programming, 面向切面编程; 通过预编译方式和运行期动态代理实现程序功能的统一维护的技术; AOP 采取横向抽取机制,取代了 ...
- spring框架总结(01)
1.spring是什么? sprint其实就是一个开源框架,是于2003年兴起的一个轻量级的java开发框架,是有Road Johnson创建的,简单的来说spring是一个分层的JavaSE/EE( ...
- Spring框架的核心模块的作用
Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用. (1)Spring Core:核心容器提供了Spring的基本功能.核心容器的核心功能是用Ioc容器来管理类的 ...
- Spring框架-IoC核心
spring框架(spring全家桶) spring FrameWork springBoot+springCloud+springCloud Data Flow 一:spring的两大核心机制: I ...
- spring 框架的核心总结
最近在学习Java语言,从而也学习了SpringFramework 这个大名鼎鼎的框架.从而做一些的记录. 题外话: 学习过几种不同的语言,后来知道所有的编程语言里所有的概念翻来覆去都是一样的事物,只 ...
随机推荐
- 【转帖】再谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP
https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html 长文是对TCP IP的 ...
- Python处理Oracle数据库的学习过程
Python处理Oracle数据库的学习过程 背景 产品数据存在一些大小写敏感的数据迁移到不敏感的数据库时出现报错的情况. 基于此, 我这边跟帅男同学学习了下Python的使用. 因为这一块一直比较菜 ...
- Mark 一下 Redisson 可能需要升级版本
貌似有bug 我们高并发的情况下貌似遇到了 https://github.com/redisson/redisson/issues/2299
- OpenPower服务使用node-exporter prometheus以及grafana进行性能监控的流程
OpenPower服务器性能监控操作流程 1. 前言 最近看了很多prometheus以及influxdb进行性能监控的帖子,简单学习了下influxdb是一个单纯的时序数据库,prometheus是 ...
- golang实现的 https 协议的四层代理和七层代理
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 四层代理 在 tcp 这一层转发很简单. http 协议是 ...
- windwos10任务栏居中
如下操作 新建一个文件夹如图 然后出现这个重右往左一直拖然后拉出来就行了如图 拖不动或者没有的把这个关了-锁定任务栏 文字如何隐藏? 在这个文字旁边右击关闭标题即可 然后锁定任务栏就OK了
- 期盼已久全平台支持-开源IM项目OpenIM之uniapp更新
国内uniapp使用广泛,OpenIM的uniapp sdk以及文档和demo (https://github.com/OpenIMSDK/Open-IM-Uniapp-Demo)都已更新,本文主要展 ...
- 深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)
深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别.实体.关系.属性抽取实战项目合集(含智能标注) 1.命名实体识别介绍 命名实体识别(Named Entity R ...
- tensorflow语法【tf.concat()详解】
相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...
- 多智能体强化学习算法【三】【QMIX、MADDPG、MAPPO】
相关文章: 常见多智能体强化学习仿真环境介绍[一]{推荐收藏,真的牛} 多智能体强化学习算法[一][MAPPO.MADDPG.QMIX] 多智能体强化学习算法[二][MADDPG.QMIX.MAPPO ...