spring框架的模块依赖

945 阅读3分钟

由于之前一直不知道spring框架之间的各个模块的依赖关系,最近看了篇文章提及了一下,感到非常的愧疚,作为一个java开发人员居然连这个都不知道,故网上查询了一些资料,做了一下总结

先来看看spring的框架模块组成:


可以看到,spring的模块非常多,每一个模块又是一个jar,我们想用相关功能就要引入相关的依赖,这是最直接的方法,但是如果我们不清楚这些模块之间的关系话,很容易引入一些无关的jar,这是比较无用占用资源的

但是我们知道我们用那些模块功能的话,这样引入的jar比较实用,不会引入无用的jar,所以就需要我们去了解每个包的作用,而且需要搞定每个jar之间的依赖,例如大部分情况下我们都是需要用到spring的ioc,aop这些功能的,但是这些功能会依赖一下相关的jar,例如spring的核心包core。但是我们想要用spring 的上下文spring context的话,又依赖core,bean,aop,以及spEl,所以大部分的情况下,我们想要使用spring的基础功能的话,就只需要引入一个jar包spring context就可以了,就会帮我们引入它依赖的jar了,不需要我们再手动去引入那几个包了;所以我们要想根据使用就引入相关的jar的话,就先要了解各个包的用处,以及他们之间的依赖

从图片可以看出,spring主要的用处分为五大模块:数据访问模块,web开发模块,切面模块,核心容器模块,测试模块;

-------------------Data Access

spring jdbc:跟数据库交互的模块,封装了jdbc;

spring orm:对象关系映射模块,数据库跟实体对象的映射;

spring oxm:对象xml映射模块;

spring jms:java的消息服务模块;

Transaction:事务控制;

-------------------Web

Websocket :websocket相关的集成;

Servlet:servlet相关;

Web:提供web模块的基础功能,应用的上下文那些;

spring webmvc:springMvc的模块相关;

Portle:基于portle的mvc实现;

------------------Aop

 spring aop:面向切面编程,aop的切面注入功能模块;

spring aspect:集成aspect的原生功能,aop只是简单的参考aspect只能对方法进行切面,要是想要更强大的功能还是得用aspect;

spring instrument:提供一些类级别的ClassLoader级别的实现,用于服务器,instrument(翻译就是:工具)

spring Messaging :spring集成消息服务;

-----------------Core

Bean:Ioc模块比较重要的实现了,就是bean的加载以及装配;

Context:就是Ioc容器了,Bean模块将Bean加载解析后注册到Context容器中;

spring expression:spring的表达式;

Core:就是依赖注入Ioc以及Di的最基础实现,也就是基础工具类;

----------------Test

spring test:模块就是用来测试的

------------------------------------------------------------

综上所述:我们大概知道了spring的各个模块的用处,但是这里面还不是spring的所有的jar,还有一些扩展的jar包;整体来说有一下这些包


前面说过引入spring context就引入了core,aop,bean,el以及context模块了,因为context模块依赖这几个模块的实现;

我们来看看这几个模块的依赖关系:





转自:www.cnblogs.com/ywlaker/p/6…