`
youyu4
  • 浏览: 442115 次
社区版块
存档分类
最新评论

Spring核心框架体系结构及各个包的作用

 
阅读更多

Spring核心框架体系结构及各个包的作用

 

描述

 

很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的!

 

spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了,下面举个例子,要在普通java工程使用spring框架,需要哪些jar呢?只要一个

 

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.2.17.RELEASE</version>
</dependency>

 

 

那要在web工程中引入spring mvc呢?也只要配置一个依赖

 

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.2.17.RELEASE</version>
</dependency>

 

 

为什么可以这样配置?接下来我们以spring 3.2.17.RELEASE版本为例,介绍spring框架结构,spring 4稍有不同,将在最后介绍

 

spring官网给出了一张spring3的结构图



 

       图中将spring分为5个部分:core、aop、data access、web、test,图中每个圆角矩形都对应一个jar,如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring3的jar包一共是19个

 

 

 

core

 

      1. spring-core:依赖注入IoC与DI的最基本实现

      2. spring-beans:Bean工厂与bean的装配

      3. spring-context:spring的context上下文即IoC容器

      4. spring-expression:spring表达式语言

 

它们的完整依赖关系



 

  因为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

 

    1. spring-aop:面向切面编程

    2. spring-aspects:集成AspectJ

    3. spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器

    4. spring-instrument-tomcat:针对tomcat的instrument实现

  

它们的依赖关系


 

 

 

 

data access

 

      1. spring-jdbc:jdbc的支持

      2. spring-tx:事务控制

      3. spring-orm:对象关系映射,集成orm框架

      4. spring-oxm:对象xml映射

      5. spring-jms:java消息服务

 

它们的依赖关系


 

 

 

 

web

 

      1. spring-web:基础web功能,如文件上传

      2. spring-webmvc:mvc实现

      3. spring-webmvc-portlet:基于portlet的mvc实现

      4. spring-struts:与struts的集成,不推荐,spring4不再提供

  

它们的依赖关系


 

 

 

 

test

  test部分只有一个模块,我将spring-context-support也放在这吧

 

      1. spring-test:spring测试,提供junit与mock测试功能

      2. spring-context-support:spring额外支持包,比如邮件服务、视图解析等

  

它们的依赖关系



 

到这里,spring3的介绍就完了,看着这些图我相信你在maven中配置spring依赖时不会再混乱了

 

 

 

下面介绍spring4,与spring3结构基本相同,下面是官网给出的结构图



 

可以看到,图中去掉了spring3的struts,添加了messaging和websocket,其他模块保持不变,因此,spring4的jar有20个

 

      1. spring-websocket:为web应用提供的高效通信工具

      2. spring-messaging:用于构建基于消息的应用程序

  

它们的依赖关系



 

 

 

参考:

http://www.cnblogs.com/ywlaker/p/6136625.html

 

  • 大小: 54.4 KB
  • 大小: 20.7 KB
  • 大小: 16.9 KB
  • 大小: 31.2 KB
  • 大小: 31.3 KB
  • 大小: 12 KB
  • 大小: 54.1 KB
  • 大小: 16.6 KB
分享到:
评论

相关推荐

    spring5框架学习笔记

    IoC(Inverse of Control,控制反转)是 Spring 框架的核心概念之一,指的是对象的创建权力由程序反转给 Spring 框架。IoC 容器是指的 Spring 中 Bean 工厂里面的 Map 存储结构,存储了 Bean 的实例。在 Spring 框架...

    Spring5.0.0.RELEASE框架文档

    对于新用户,Spring框架概述部分提供了如何开启Spring之旅的引导,从框架简介到核心特性,逐步展示了如何通过依赖注入和控制反转实现模块化,以及各个模块的详细介绍,如核心容器、AOP和设备模块、消息组件、数据...

    spring框架思维导图下载(纯手画)

    Spring框架的思维导图可以帮助我们更好地理解和掌握Spring的各个模块和概念,通过手绘的形式,可以将这些知识结构化,加深记忆。"Spring.png"和"Spring.xmind"可能是两种不同格式的思维导图文件,分别以图片和XMind...

    spring3.2中文参考手册

    通过阅读Spring框架参考手册,开发者可以掌握Spring框架的体系结构、各个模块的详细功能以及在不同场景下的应用。这是成为Spring框架熟练开发者不可或缺的知识积累。对于希望深入了解Spring框架的IT专业人士,参考...

    Struts2框架整合Spring框架在文件上传下载中的应用基于HT T P 传输协议, 采用Struts2 框架整合Spring 框架技术对Web 中文件的上传下载进

    Struts2的体系结构以拦截器为核心,用户的业务逻辑控制器为目标。当用户发起请求时,Struts2框架会通过一系列拦截器来处理这个请求。首先,请求会被拦截器处理,然后传递给具体的Action处理类。Action处理类中的`...

    《J2EE体系结构及程序设计》课程评价分析

    《J2EE体系结构及程序设计》是一门针对计算机科学与技术专业学生的选修课程,主要目的是培养学生在Java EE平台上进行Web程序设计和企业应用开发的能力。课程在大学三年级第一学期开设,考虑到学生已具备一定的Java...

    Spring+Mybatis+Spring MVC需要的jar包

    除了这些核心框架的jar包,还有其他一些常见的依赖,如: 1. slf4j-api:简单日志门面,允许在项目中选择不同的日志实现。 2. log4j:一种具体的日志实现,用于记录应用程序的日志信息。 3. jstl:用于在JSP页面中...

    spring5 官方文档 中文版 带目录

    Spring框架的模块化设计允许应用根据需求选择需要的模块进行组合,从而构建出符合项目需求的体系结构。Spring框架的这些特性,结合其活跃的社区,使得Spring成为当前最流行的Java框架之一,并且在持续不断地发展和...

    精通Eclipse Web开发:Java体系结构、工具、框架及整合应用 源代码(ch3-ch18).

    总的来说,《精通Eclipse Web开发:Java体系结构、工具、框架及整合应用 源代码(ch3-ch18)》为Java Web开发者提供了一条从理论到实践的清晰路径,帮助他们掌握Eclipse环境下Web开发的各个方面。结合源代码进行学习,...

    java 体系结构图,不错的总结,复习的资料

    Java 体系结构图是理解Java编程语言及其生态系统的关键工具,尤其对于初学者而言,它能够清晰地展现Java的各个组成部分以及它们之间的关系。这个压缩包包含的“体系结构图”很可能是以图形形式展示了Java的核心概念...

    struts2;spring3;mybatis3搭建web网站的jar包和SSM框架模板

    这个框架体系为开发者提供了一种高效且灵活的方式来构建动态、数据驱动的Web应用程序。下面将详细讲解这三个组件以及它们在搭建Web网站中的作用。 1. **Struts2**: Struts2是一个基于MVC(Model-View-Controller...

    基于SPRING框架的分布式工作流引擎的设计方法探索.pdf

    轻量级J2EE平台提供的分层体系结构、多数据库支持、多语言界面调整能力以及页面布局的可扩展性,为构建工作流引擎提供了良好的基础。 当前工作流技术的研究现状和发展动态显示出,尽管工作流管理系统在企业业务流程...

    Java学习体系结构

    Java学习体系结构是一个全面的指南,旨在帮助初学者掌握Java编程技能,并逐步深入到JavaEE应用开发。以下是对各个知识点的详细说明: 1. **JavaSE基础**:这是学习Java的第一步,包括JDK的安装,编写HelloWorld程序...

    Spring 5.1.x(重) (1).docx

    1.4. Spring体系结构 - **核心容器**:包括Core Container(如BeanFactory和ApplicationContext)和Beans模块,负责对象的创建和管理。 - **数据访问/集成**:包括JDBC、ORM、OXM、JMS和Tx模块,为数据访问提供了...

    Spring学习+IDEA.docx

    - 引入必要的Spring核心库,这通常涉及在pom.xml文件中添加对应的依赖项,如`spring-context`、`spring-aop`等。 - 配置Spring容器,如编写XML配置文件或使用Java配置类,定义bean及其依赖关系。 学习Spring时,...

    JSF+Spring+Hibernate整合图文教程详解

    **多层体系结构**是一种高级的Web应用程序架构方式,其核心在于通过不同的层次来实现软件系统的各个部分,从而提高系统的可维护性、可扩展性和可重用性。在本文中,我们将探讨如何通过整合JSF、Spring和Hibernate来...

    spring立体文档-06

    总结,Spring框架的立体结构涵盖了Java企业级应用的各个方面,通过深入理解和实践,开发者可以构建出高效、可维护的软件系统。对于初学者和经验丰富的开发者来说,理解并掌握Spring的立体结构至关重要,这将极大地...

    Spring基础包的dtd(aop,jdbc,jee,jms,lang,mvc,oxm)等

    接着,`beans.dtd`是Spring核心的bean管理模块的DTD文件。它包含了声明bean、属性注入、依赖查找等各种元素的定义。比如,`&lt;bean&gt;`元素用于声明一个bean实例,`&lt;property&gt;`元素用于注入属性值,`&lt;constructor-arg&gt;`...

    struts2+spring+hibernate+ajax纳税服务.rar

    Struts2、Spring和Hibernate是Java企业级开发中常用的三个框架,它们构成了SSH(Struts2、Spring、Hibernate)框架体系,广泛应用于构建MVC(Model-View-Controller)架构的Web应用程序。Ajax(Asynchronous ...

Global site tag (gtag.js) - Google Analytics