文档章节

spring framework 模块简介

巡山
 巡山
发布于 2016/04/13 20:49
字数 1050
阅读 25
收藏 1

        经常使用spring ,偶尔也看看了spring 一些分析,本文是对spring framework的模块进行简单介绍,方便加深理解和以后查找,主要是对spring framework reference文档的引用和翻译。

        spring 主要有20个模块组成,这些模块封装在core container(核心)层,data aceess/intergration 层(数据访问),web层(网页),aop层(切面编程),Instrumentation层(工具),Messaging层(消息JMS) 这六层,还有测试层。下面是spring framework模块结构图。


spring core container

       spring core container主要有 spring-beans,spring-core,spring-context,spring-context-support,

spring-expression组成。

      spring-beanspring-core提供了spring framework 框架的基础核心功能,包括依赖注入(IOC)和控制反转(DI)。BeanFactory 是工程模式的复杂实现,它不需要通过编程实现单例,可以让你将业务逻辑中的依赖关系和配置解耦出来。

      spring-context 模块建立在 spring-beans,spring-core 坚固基础上。它提供了一种类似注册JNDI的访问spring容器内对象的手段,context 模块继承beans 模块的特性并增加国际化支持(例如:资源绑定)。事件传播,资源加载,透明创建context。例如,一个servlet容器,context模块同样支持Java ee的特性。如EJB,JMX 和远程调用。applicationContext 接口是是context模块的核心。spring-context-support 整合缓存(EHCache,Guava,Jcache),邮件(javaMail),定时任务(commonJ,quartz)和模板引(freemarker,jasperReport,velocity)这些常用第三方框架。

    spring-expression 模块提供在运行时,查询、操作对象的强大表达式语言,它是对JSP2.1规范统一EL标准的扩展实现,该表达式语言支持设置和获取对象属性值,属性初始化,方法调用,访问数组,列表,集合内容,支持逻辑和算术运算操作,设置变量,从spring IOC 容器中根据变量名称获取对象的值。同样支持list 投影和选择和列表聚合。

aop and instrumentation

       spring-aop 模块实现允许自定义面向切面编程。如方法拦截,解耦分离函数代码,使用源代码级别的元数据功能,你可以行为信息写在代码中类似在.net attributes管理。

       spring-aspect模块整合第三方库AspectJ

       spring-instrument模块提供class整合支持和在包含应用服务器中使用的类加载器。spring-instrument-tomcat 模块对tomcat容器的代理。


messaging

spring framework 4 包含了 spring-messaging 模块,是从spring intergration项目抽象出 如Message,MessageChannel,MessageHandler,和其他的服务器的基础信息应用。该模块同时包含了一些用来映射消息到方法的注解,就行spring mvc 编程模型的注解。


data access/integration

    data access/integration 层由JDBC,ORM,OXM,JMS 和transaction 模块组成。

    spring-jdbc 模块对jdbc抽象出来,移除了jdbc数据库操作的重复的编码和解析不同数据库厂商的错误代码。

    spring-tx 模块实现对特定接口或POJOS对象提供编程方式和声明方式的事务管理。

    spring-orm整合了流行的ORM(对象关系映射)框架,包括JPA,JDO,和hibernate,使用这些框架后同时可以使用spring-orm模块的其它的特性。如声明事务管理特性。

     spring-oxm 模块整合了对xml第三方框架如JAXB,CASTOR,XMLBeans,JiBx 和XStream.

     spring-jms 模块提供包含生产和消费消息特性。从4.1版本开始它和整合了spring-messaging模块。

    

 web

       web层由spring-web,spring-webmvc,spring-websocket 和spring-portlet模块组成。

       spring-web提供诸如文件上传 使用servlet lislener 初始化IoC容器,和一个web方面的 application context等基础特性,同时包含一个http客户端和web相关的spring远程支持。

       spring-webmvc 模块(也叫spring-servlet模块)包含了spring实现的 mvc  和 REST 风格的web服务的实现,spring 的mvc框架清晰的隔离了domain model 代码和web表单代码,并整合了所有spring其他的特性。

       spring-webmvc-porltet 模块(也叫spring-portlet模块)在portlet环境下使用spring-mvc和spirng-webMvc模块的其他基础功能。


英语水平有限,错误难免,请指正





© 著作权归作者所有

巡山
粉丝 2
博文 20
码字总数 12425
作品 0
深圳
私信 提问
Spring Framework体系结构简介

说明:以下转自Spring官方文档,用的版本为4.3.11版本。 一、引用官方文档 所述核心容器由以下部分组成, ,,,和(弹簧表达式语言)模块。 的和模块提供框架的基本零件,包括IOC和依赖注入...

easonjim
2017/09/16
0
0
ZHENFENGSHISAN/perfect-ssm

Quick Start 项目简介 ssm系列 ssm-demo:Spring+SpringMVC+Mybatis+easyUI整合 perfect-ssm:RESTful API+redis缓存 ssm-cluster:前后端分离+集群部署 ssm-dubbo:dubbo服务化 ssm-micro-se......

ZHENFENGSHISAN
2017/09/18
0
0
Spring Boot基础教程 ( 一 ) :基础项目构建,引入web模块,完成一个简单的RESTful API

原文出处:didispace 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试...

didispace
2018/09/27
0
0
【转】Spring Boot快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

HAVENT
2018/07/09
15
0
iBase4J-JAVA分布式Web系统

iBas4J项目简介 iBase4J是基于Java的开源框架搭建的分布式系统架构。 使用Maven对项目进行模块化管理,提高项目的易开发性、扩展性。 系统包括两个模块:系统管理模块、调度管理模块、Web展示...

iBase4J
2016/06/15
45
0

没有更多内容

加载失败,请刷新页面

加载更多

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
6
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
7
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部