Spring学习之路(一)---Spring模块划分

1.Spring概述

对于Java开发者来说,Spring是一个非常著名的框架。无论在什么Java方向的开发领域,Spring都有他的一席之地。在网上的资料可以知道,Spring是一个开源的框架,其官网地址为:Spring官网。

Spring学习之路(一)---Spring模块划分_第1张图片

Spring从一开始就是为了解决企业级应用在开发过程中遇到的复杂问题而提出来的,而且他的主要优势在于他是一个分层结构,开发者可以根据自己的需要引入相应的模块,而不用将所有的库模块都引入,减少依赖的复杂性,同时提高开发的效率,这也是该章重点讲述的。

在这篇文章中,我们主要讲解Spring的模块划分,已经如何在开发的过程中引入相应的模块。

2.Spring模块划分

Spring模块的划分如下:

Spring学习之路(一)---Spring模块划分_第2张图片

从上面可以看出Spring主要分成六个模块:

1.Spring核心容器:核心容器是Spring框架的重要组成部分,也可以说是Spring框架的基础。他在整个框架中的作用是负责管理对象的创建,管理,配置等等的操作。其主要包含spring-core,spring-beans,spring-context,spring-expression,spring-context-support组件。

2.面向切面编程:Spring框架还提供了面向切面编程的能力,利用面向切面编程,可以实现一些面向对象编程无法很好实现的操作。例如,将日志,事务与具体的业务逻辑解耦。其主要包含spring-aop,spring-aspects组件。

3.Instrumentation:该模块提供了为JVM添加代理的功能,该模块包含spring-instrument,spring-instrument-tomcat组件,使用较少,不必过分关注。

4.数据访问与集成:Spring框架为了简化数据访问的操作,包装了很多关于数据访问的操作,提供了相应的模板。同时还提供了使用ORM框架的能力,可以与很多流行的ORM框架进行整合,如hibernate,mybatis等等的著名框架。还实现了数据事务的能力,能够支持事务。包含spring-jdbc,spring-tx,spring-orm,spring-oxm,spring-jms,spring-messaging组件。

5.Web和远程调用:Spring框架支持Web开发,以及与其他应用远程交互调用的方案。包含spring-web,spring-webmvc,spring-websocket,spring-webmvc-portlet组件。

6.Spring测试:Spring框架提供了测试的模块,可以实现单元测试,集成测试等等的测试流程,整合了JUnit或者TestNG测试框架。包含spring-test组件。

以上就是Spring框架的几个主要模块。而在实际的开发过程中,不必要引入所有的Jar包,只需要引入与自己项目相关的库就行了。例如,只需要Spring框架的容器功能,实现依赖注入,那么只需要引入核心框架的几个库就完成了,其他模块例如Aop模块的库是没有必要引入的。

3.Spring模块引入

在这个小节中,主要介绍如何利用maven在项目中引入相应的Spring模块。例如,我们需要在项目中引入容器模块,我们可以采用如下的实现方式:


    4.3.18.RELEASE


    
        org.springframework
        spring-core
        ${spring.version}
    
    
        org.springframework
        spring-beans
        ${spring.version}
    
    
        org.springframework
        spring-context
        ${spring.version}
    
    
        org.springframework
        spring-expression
        ${spring.version}
    
    
        org.springframework
        spring-context-support
        ${spring.version}
    

如上面代码所示,可以首先将Spring的版本单独定义,方便在实际开发的过程进行统一修改。而在实际的开发中,我们可以只引入相应的模块,而没必要引入其他不需要的。而Spring框架的groupId统一为org.springframework,而需要修改的artifactId,其形式为spring-xxx,xxx为具体的模块名。

通过这种方式,就可以方便地在咱们的项目中引入相应的模块。

你可能感兴趣的:(Java,Spring)