Spring5 feamework modules
一、Spring框架的组成
由
- core container(核心容器)
- Data Access and DataIntegration(数据读取和数据整合)
- web
- AOP(面向切面编程)
- Instrumentation(工具)
- Messaging(消息传递)
- Test
这七个部分组成,如下图

Spring框架的功能大概是由20个模块组成,这些模块按组可以分为:
1、Core Container(核心容器):
- Beans:负责Bean工厂中Bean的装配;所谓Bean工厂就是创建对象的工厂,Bean的装配也就是对象的创建。
- Core:负责IOC(控制反转)的基本实现
- Context:Spring的IOC容器,因大量调用Core中的函数,整合了Spring中的大部分功能。Bean创建好对象之后,由Context负责建立Bean与Bean之间的关系并维护。所以也可以把Context看成Bean关系的集合
- SpEL:Spring Expression Language(Spring表达式语言)
2、Data Access/Integration(数据访问/集成):
- JDBC:对JDBC的简单封装;
- ORM:支持数据集成框架的封装(如Mybatis,Hibernate)
- OXM:即Object XML Mapper,它的作用是在Java对象和XML文档之间来回转换;
- JMS:生产者和消费者的消息功能的实现;
- Transations:事务管理
3、Web:
- WebSocket:提供Socket通信,web端的的推送功能;
- Servlet:Spring MVC框架的实现;
- Web:包含web应用开发用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类,Struts集成类、文件上传的支持类、Filter类和大量辅助工具类;
- Portlet:实现web模块功能的聚合(如网站首页(Port)下面可能会有不同的子窗口(Portlet));
4、AOP:
- 面向切面
5、Aspects:
- 同样是面向切面的一个重要的组成部分,提供对AspectJ框架的整合
6、Instrumentation(设备):
- 相当于一个检测器,提供对JVM以及对Tomcat的检测
7、Messaging(消息):
- Spring提供的对消息处理的功能;
8、Test(测试)
- 在做单元测试时,Spring会帮我们初始化一些测试过程当中需要用到的资源对象;
二、核心概念
1、IOC(Inversion of Control)
- 控制反转
- 对象创建和对象之间维护的控制权由程序员管理变为Spring管理
2、DI(Dependency Injection)
- 依赖注入
- 表示对象和对象之间依赖关系管理
3、AOP(Aspect Oriented Programming)
- 面向切面编程
Spring5 feamework modules的更多相关文章
- jersey2.26+spring5+jpa一步步搭建restful服务
前言 首先,为什么想选择Jersey做restful服务呢?我个人比较喜欢它的插件化设计,可以方便的注入自己的全局处理逻辑.再一个就是可以生成wadl描述文件,供查询服务方法.所以在学习spring的 ...
- Spring5源码阅读环境搭建-gradle构建编译
前沿:Spring系列生态十分丰富,涉及到各个方面.但是作为Spring生态的核心基础Spring,是最重要的环节,需要理解Spring的设计原理,我们需要解读源码. 在构建Spring源码阅 ...
- Play modules
A Play application can be assembled from several application modules. This allows you to reuse appli ...
- YII的Modules模块化
转载来源: http://blog.csdn.net/mengxiangbaidu/article/details/7041296 http://blog.csdn.net/colzer/articl ...
- 在Angular1.X中使用CSS Modules
在Angular1.5中,增加了一个Component方法,并且定义了组件的若干生命周期hook,在代码规范中也是推崇组件化开发,但是很遗憾的是,CSS模块化组件化的问题并没有得到解决,大部分项目的打 ...
- 如何在Mac系统里面更新 Ansible 的 Extra Modules
最近遇到一个问题 seport is not a legal parameter in an Ansible task or handler 原因是我本地 Ansible 的 Extra Module ...
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
在eclipse里面配置tomcat时候遇到的问题: Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web mo ...
- 安装ESXi5.5遇到Relocating modules and starting up the kernel的处理
在一些Dell较旧的服务器上安装ESXi 5.x时, 会遇到卡在Relocating modules and starting up the kernel过不去的问题. 比如我装的这台CS24VSS. ...
- PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...
- PHPCMS \phpsso_server\phpcms\modules\phpsso\index.php、\api\get_menu.php Authkey Leakage
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 安装phpcms的时候会强制安装它的通行证 Relevant Link: ...
随机推荐
- 第三章 mysql 数据库接口程序以及SQL语句操作
mysql 数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...
- git reset 加不加 --hard的区别
通常我们提交代码一般都是 git add ,git commit -m, git push的这么个流程.添加到暂存区,提交到git库生成版本号,push到远程仓库以供他人可以使用.这是一个完整的且 ...
- Qt ui 文件转换为python代码文件
python -m PyQt5.uic.pyuic -o ui_xxx.py xxx.ui
- Javascript基础知识整理(引用类型-Array)
Array Array是一组数据的有序列表,在ECMAScript中,数组的每一项可以是不一样的数据类型. 创建数组有两种方式 (1)使用构造函数 var colors = new Array(); ...
- 2022-07-11 第一小组 张明旭 前端JS学习记录
今天是正式学习的第三天,每天一大部分前端的新知识,吐瘦两斤,听课晕乎乎的.不过小事,靠笔记和视频苟活 知识点: JavaScript是什么? 编程语言.脚本语言.依赖于某种容器(浏览器)运行 有浏览器 ...
- vue后台管理系统——项目优化上线
1. 项目优化 项目优化策略: 使用进度条nprogress 生成打包报告 第三方库启用 CDN Element-UI 组件按需加载 路由懒加载 首页内容定制 ① 使用进度条nprogress 在页面 ...
- 【已解决】robotframework 连接oracle数据库返回结果中文显示乱码
问题描述:查询数据库返回信息有中文的时候会显示unicode的样式,如图: 环境:robotframework 3.0.x 解决方法: 找到Python安装目录下的\Lib\site-packages ...
- CMD输出文本文件内容的type指令(替代Linux的cat指令)
:: 本脚本的所有指令本身不输出到屏幕 @echo off :: 打印文本文件内容并匹配关键字,结果不输出到屏幕 type result.txt | find "error" &g ...
- python读取与处理netcdf数据
netcdf是气候数据中的主流格式,当涉及到大范围的全球数万个格网点数据时,使用python脚本可以较快地读取与处理. import netCDF4 from netCDF4 import Datas ...
- Educational Codeforces Round 2 个人总结A-E
Educational Codeforces Round 2 A. Extract Numbers 简单的模拟 bool check(string op) { if(op.size()==1& ...