官网: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-概述的更多相关文章

  1. Spring框架的核心功能之AOP技术

     技术分析之Spring框架的核心功能之AOP技术 AOP的概述        1. 什么是AOP的技术?        * 在软件业,AOP为Aspect Oriented Programming的 ...

  2. spring框架 AOP核心详解

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...

  3. 控制反转是Spring框架的核心。

    早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题.他总结出是依赖对象的获得被反转了.基于这个结论,他为控制反转创造了一个更好的名字:依赖注入.许多非凡的应用(比H ...

  4. Spring框架的核心功能之AOP概述

    1. 什么是AOP的技术? * 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 * AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构 ...

  5. Spring框架学习路线和概述

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合. Spring框架的概述: 1. 什么是Spring Spring是分层的JavaSE/EE ...

  6. Spring 框架的核心功能之AOP技术

    1. AOP 的概述 AOP, Aspect Oriented Programming, 面向切面编程; 通过预编译方式和运行期动态代理实现程序功能的统一维护的技术; AOP 采取横向抽取机制,取代了 ...

  7. spring框架总结(01)

    1.spring是什么? sprint其实就是一个开源框架,是于2003年兴起的一个轻量级的java开发框架,是有Road Johnson创建的,简单的来说spring是一个分层的JavaSE/EE( ...

  8. Spring框架的核心模块的作用

    Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用. (1)Spring Core:核心容器提供了Spring的基本功能.核心容器的核心功能是用Ioc容器来管理类的 ...

  9. Spring框架-IoC核心

    spring框架(spring全家桶) spring FrameWork springBoot+springCloud+springCloud Data Flow 一:spring的两大核心机制: I ...

  10. spring 框架的核心总结

    最近在学习Java语言,从而也学习了SpringFramework 这个大名鼎鼎的框架.从而做一些的记录. 题外话: 学习过几种不同的语言,后来知道所有的编程语言里所有的概念翻来覆去都是一样的事物,只 ...

随机推荐

  1. [转帖]【OS】OSWbb(OSWatcher Black Box)的简介和使用

    http://blog.itpub.net/26736162/viewspace-2142613/ OSWatcher Black Box, 简称OSW,是提供的一个小但是非常有用的工具,它通过调用O ...

  2. 【转帖】nginx变量使用方法详解-4

    https://www.diewufeiyang.com/post/578.html 在设置了"取处理程序"的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变 ...

  3. [转帖]SQL Server数据库存储总结

    SQL Server数据库存储文件类型:数据文件和日志文件.数据文件以页面作为存储单元存储数据. 页面:即数据页面,数据页(Page).是系统在磁盘间中分配的一段大小为8k的连续空间. 文件头(Fil ...

  4. [转帖]36.堆空间的参数设置和-XX:HandlePromotionFailure

    目录 1.堆空间参数 2.-XX:HandlePromotionFailure 1.堆空间参数 * -XX:+PrintFlagsInitial : 查看所有的参数的默认初始值 * -XX:+Prin ...

  5. [转帖]Linux中split大文件分割和cat合并文件详解

    https://www.yingsoo.com/news/servers/70195.html 当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而 ...

  6. [转帖]好用的parallel命令

    https://www.cnblogs.com/codelogs/p/16060043.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 有时,我们需要 ...

  7. Docker 安装Oracle12c的镜像修改字符集 并且进行启动的简单过程

    学习来自 昨天晚上转帖的文章 这里面添加一些自己的内容 首先获取配置文件 git clone https://github.com/oracle/docker-images.git 获取之后比较容易了 ...

  8. 简单定位占用最高CPU的java进程信息

    公司里面一个应用不小心点击就会导致系统性能下降很明显. 性能组的同事定位到了, 我这里以学习的态度重现一下这个过程. 1. 问题再现 产品一个非常大数据量的帮助, 点击之后就会占用非常多的cpu 因为 ...

  9. Charles的基本使用

    今天介绍Charles常用的几个功能 一.map local 1.map local是测试中mock数据常用的功能,首先我们选择需要mock数据的接口,这里以百度为例 抓包抓住该接口后鼠标右击选择ma ...

  10. js循环之map在工作中的使用

    map函数会返回一个全新的数组哈(重要 在实际中很有用) map循环空那个数组时,不会报错的. 使用map的优势 可以返回一个全新的数组 可以用于过滤 ps==>:map里面不要有判断,否者会返 ...