您的位置:首页 > 编程语言 > Java开发

Spring 整体架构和环境搭建

2017-07-07 17:22 435 查看

Spring的整体框架

Q:Spring是什么?

是一个轻量级的 Java 开源框架。是一个 IOC(DI)和 AOP 容器框架。

Spring 整体架构图



这些模块被总结为以下几个部分。

(1)Core Container(核心容器)

其中包含有:spring-corespring-beansspring-contextspring-context-supportspring-expression(Spring Expression Language) 模块。

spring-corespring-beans 模块是框架的基础部分,提供 IoC(转控制)依赖注入特性。这里的基础概念是 BeanFactory , 它提供对 Factory 模式的经典实现消除对程序性单列模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置

spring-core 模块:主要包含Spring 框架基本的核心工具类,是其他组件的基本核心

spring-beans 模块:包含访问配置文件创建和管理 bean 以及进行 Inversion of Control / Dependency Injection(IoC / DI)操作相关的所有类

Context(spring-context) 模块:构建于 CoreBeans 模块基础之上,提供了一种类似于 JNDI 注册器的框架式的对象访问方式。Context 模块继承了 Beans 的特性,为 Spring 核心提供了大量扩展,添加了对国际化(例如资源绑定)事件传播资源加载对 Context 的透明创建的支持。Context 模块同时也支持 J2EE 的一些特性,例如 EJBJMX基础的远程处理ApplicationContext 接口是 Context 模块的关键

spring-context-support 模块:为将公共第三方库集成到Spring应用程序上下文提供支持,特别是用于缓存(EhCache、JCache)和调度(CommonJ、Quartz)。

spring-expression 模块:提供了一个强大的表达式语言用于在运行时查询操纵对象。 该语言支持:设置/获取属性的值容器和索引器逻辑和算术运算符命名变量以及从 Spring 的 IoC 容器中根据名称检索对象list 投影选择和一般的 list 聚合

(2)AOP and Instrumentation

AOP 模块提供了一个符合 AOP 联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合性

spring-aspects 模块:提供了对 AspectJ 的集成支持。

spring-instrument 模块:提供了 class instrumentation 支持和 classloader 实现,使得可以在特定的应用服务器上使用

spring-instrument-tomcat 模块:包含用于 Tomcat 的 Spring 的工具代理。

(3)Messaging

spring 4 以上的版本,包含了 Spring 集成项目(如Message、MessageChannel、MessageHandler等)的关键抽象概念,并为基于消息的应用程序提供了基础。该模块还包括一组用于将消息映射到方法的注释,类似于基于Spring MVC的基于注释的编程模型。

(4)Data Access/Integration

该层包含了:JDBCORMOXMJMSTransaction 模块。

spring-jdbc 模块:提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂商特有的错误代码

spring-tx (Transaction)模块:支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的 POJO(Plain Old Java Objects) 都适用。

spring-orm 模块:为流行的对象-关系映射 API(如 JPA、JDO、Hibernate、iBatis等)提供了一个交互层。利用 ORM 封装包,可以混合使用所有 Spring 提供的特性进行 O/R
d0c9
映射
。如前面提到的简单声明性事务管理。

spring-oxm 模块:提供了一个对 Object/XML 映射实现的抽象层,如 JAXB、Castor、JiBX 和 XStream。

spring-jms(Java Messaging Service) 模块:包含了一些制造和消费消息的特性。自 Spring Framework 4.1 以来,它提供了与 Spring - messaging 模块的集成

(5)Web

Web层包含了:spring-webspring-webmvcspring-websocket 模块。

spring-web 模块:提供基础的面向 Web 的集成特性,例如:多文件上传、使用 servlet listeners 初始化 IoC容器以及一个面向 Web 的应用上下文。它还包含一个 HTTP 客户端和 Spring 远程支持中 Web 的相关部分。

spring-webmvc 模块(也称为:Web-Servlet 模块):包含 Spring 的 model-view-controller (MVC) 实现REST Web Services 实现。Spring 的 MCV 框架使得模型范围内的代码和 web forms 之间能够清楚地分离开来,并与 Spring 框架的其他特性集成在一起。

(6)Test

支持使用 JUnit 和 TestNG 对 Spring 组件进行单元测试和集成测试。它提供了 Spring applicationcontext 的一致加载和这些上下文的缓存。它还提供了可以用于隔离的模拟对象。

环境搭建

1、安装GitHub

下载网址https://desktop.github.com/

2、安装Gradle

Gradle 是一个基于 Groovy 的构建工具,它使用 Groovy 来编写构建脚本,支持依赖管理和多项目创建,类似 Maven,但比其更加简单轻便。Gradle 为 Ivy 提供一个 layer,提供了build-by-convention 集成,而且它还让你获得许多类似 Maven 的功能。

下载网址https://gradle.org/releases/

下载后将文件解压放到指定目录中(笔者放在:D:\Program Files 目录下),然后开始进行环境变量的配置。

(1)根据对应目录创建 GRADLE_HOME 系统变量;



(2)将系统变量加入到 path 中。



(3)测试

当完成系统变量的配置后打开命令窗口输入命令 “gradle -version”,如果安装成功会出现 Gradle 对应的版本信息。



3、下载 Spring

(1)打开安装好的 GitHub Desktop,注册、登录。



(2)下载源码:File –> Clone repository –> 输入源码地址(git://github.com/SpringSource/Spring-framework.git)





(3)等待下载完毕,打开文件夹查看。





注意:当前的源码并不可以直接导入 Eclipse 中,我们还需要将源码转换成 Eclipse 可以读取的形式。

下图中的 import-into-eclipse.bat 是 windows 下的批处理命令可以把 git 项目修改成 Eclipse 需要目录结构。一次性将所有的模块都转换成 Eclipse 项目(时间可能有点久)。



转换成功,之后即可导入 Eclipse 中。也可以将 Eclipse 项目导入 intellj IDEA 中。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: