简介

Spring 是开源轻量级 J2EE 框架

我们常说的 Spring 实际上是指 Spring Framework,它是 Spring 家族中的一个重要分支。

官方文档

https://docs.spring.io/spring-framework/docs/current/reference/html/core.html

两大核心:IOC 和 AOP

IOC

Inversion of Control,即控制反转,把创建对象的过程交给 Spring 进行管理。

实现方式

DI(Dependency Injection),即依赖注入。

底层实现

工厂模式 + XML 解析 + 反射

AOP

Aspect Oriented Programming,即面向切面编程,不修改源代码进行功能增强。

底层实现

动态代理 => 代理模式 => 反射

结构

组件

Spring 中的组件分别提供一块特定的功能。

core

spring-core

核心组件,依赖注入的最基本实现。

spring-beans

Bean 工厂与 Bean 的装配,提供控制反转的基础实现。

spring-context

上下文即 IOC 容器,在 IOC 基础上继续扩展服务。

spring-expression

对表达式语言的支持。

commons-logging

因为 spring-core 依赖了 commons-logging,而其他模块都依赖了 spring-core。

所以整个 Spring 框架都依赖了 commons-logging。

如果有自己的日志实现如 log4j,可以排除对 commons-logging 的依赖,没有日志实现而排除了 commons-logging 依赖,会编译报错。

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.17.RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>

aop

spring-aop

提供面向切面编程的实现。

spring-aspects

提供对 AspectJ 框架的整合。

spring-instrument

提供一些类级的工具支持和 ClassLoader 级的实现,用于服务器。

spring-instrument-tomcat

针对 Tomcat 的 instrument 实现。

data access

spring-jdbc

JDBC 的支持。

spring-tx

事务控制。

spring-orm

对象关系映射,集成 ORM 框架。

spring-oxm

对象 XML 映射。

spring-jms

Java 消息服务。

web

spring-web

基础 web 功能,如文件上传。

spring-webmvc

MVC 实现。

spring-webmvc-portlet

基于 portlet 的 MVC 实现。

spring-websocket

对 WebSocket 的支持,为 WEB 应用提供的高效通信工具。

test

spring-test

测试,提供 jUnit 与 mock 测试功能。

spring-context-support

对 spring-context 的扩展。

Spring 额外支持包,比如邮件服务、视图解析等。

其他

spring-messaging

对消息服务的支持,例如搭配 JMS、搭配 AMQP、搭配 WebSocket 等,用于构建基于消息的应用程序。

Spring 01 概述的更多相关文章

  1. Spring Integration概述

    1.   Spring Integration概述 1.1     背景 Spring框架的一个重要主题是控制反转.从广义上来说,Spring处理其上下文中管理的组件的职责.只要组件减轻了职责,它们同 ...

  2. Spring Cloud 概述

    1. Spring Cloud 引言 首先我们打开spring 的官网:https://spring.io/ 我们会看到这样一张图片 这个图片告诉我们,开发我们的应用程序就像盖楼一样, 首先我们需要搭 ...

  3. (转)Spring的概述

    http://blog.csdn.net/yerenyuan_pku/article/details/69663685 Spring的概述 什么是Spring 据度娘所载: Spring是一个开源框架 ...

  4. 微服务与Spring Cloud概述

    微服务与Spring Cloud随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构. 微服务是一种架构风 ...

  5. Spring IOC 概述

    Spring IOC 概述 IOC(Inversion of Control) 控制反转,也叫 DI(D_ependency injection_) 依赖注入.是一种设计思想.不过我并不同意所谓反转的 ...

  6. 1.Spring 框架概述

    目录 Spring 框架概述 1 我们所说的 "Spring "是什么意思 2. Spring和Spring框架的历史 3. 设计理念 4.反馈和贡献 5.开始使用 Spring ...

  7. 01 - spring mvc 概述及配置DispatcherServlet

    1.Spring mvc 基于model2实现,整体框架流程如(图片来自百度): ①web容器接收到http请求,若匹配DispatcherServlet的请求映射路径(web.xml),则容器会交给 ...

  8. Spring → 01:概述

    一.了解Spring发展 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Dev ...

  9. Spring源码 01 概述

    参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...

随机推荐

  1. poj3784(对顶堆)

    题意:多组数据,让你求出1~i(i为奇数&&i<=n)的中位数 思路:首先复杂度必为O(n)或O(nlogn)的(数据范围) 思索,如果题目要求1次中位数,好求!排个序,取a[( ...

  2. AcWing 1248. 灵能传输 蓝桥杯

    蓝桥杯的一道题:灵能传输 https://www.acwing.com/problem/content/description/1250/ 首先是简化操作,将原数组转化为前缀和数组(下标都是从1开始) ...

  3. Spring Authorization Server(AS)从 Mysql 中读取客户端、用户

    Spring AS 持久化 jdk version: 17 spring boot version: 2.7.0 spring authorization server:0.3.0 mysql ver ...

  4. Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决

    debug系列第一弹,不知道大家写程序的时候是不是都遇到过如题的报错. 我本人是经常遇到这行熟悉的令人不知所措的报错,可能是我太笨了 有时候百度无果也差不到原因,那就汇总一下目前我遇到的情况吧--持续 ...

  5. ubuntu使用postfix和AWS-SES发送邮件

    在日常开发中,邮件发送是个比较常见的场景.因此出现了很多相关的软件和服务,各大云厂商也推出自己的邮件服务.今天笔者就像大家介绍一种常见的组合,AWS的邮件服务 SES 与邮件服务器 postfix 的 ...

  6. Python调用腾讯云API,实现人脸年龄变化

    网上看到了一个教程,调用腾讯云的人脸识别api和修改年龄api来实现模拟人物不同年龄的面貌 但是大多数教程的代码都是想同的,估计是抄袭哪个人的关键是执行不了 刚好周杰伦马上要发新专辑了,小改一下,拿杰 ...

  7. NC25136 [USACO 2006 Ope B]Cows on a Leash

    NC25136 [USACO 2006 Ope B]Cows on a Leash 题目 题目描述 给定如图所示的若干个长条.你可以在某一行的任意两个数之间作一条竖线,从而把这个长条切开,并可能切开其 ...

  8. 使用 NSProxy 实现消息转发

    一.简介 ​ 在 iOS 应用开发中,自定义一个类一般需要继承自 NSObject 类或者 NSObject 子类,但是,NSProxy 类不是继承自 NSObject 类或者 NSObject 子类 ...

  9. RT-Thread 组件 FinSH 使用时遇到的问题

    一.FinSH 的移植与使用问题 FinSH组件输入无反应的问题 现象:当打开 finsh 组件后,控制台会打相应的信息,如下图说是: \ | / - RT - Thread Operating Sy ...

  10. 强化学习-学习笔记5 | AlphaGo

    本文不是论文阅读笔记,只是一个学习笔记,重在理解,在严谨程度上可能稍差. AlphaGo 论文指路: Mastering the game of Go with deep neural network ...