Spring 模块分类及生态简介

一.模块分类

在maven中央仓库中查看spring4.0发布版本,包括了20个不同模块,类库如图所示,除了Log属于依赖外,这20个jar包基本涵盖了企业级应用所需的一切,除了核心容器外,你可以对这些模块有所选择,而不是一定要选择spring自带的集成模块

虽然模块众多,但总体来说是分为六种类型,如图所示

Spring核心容器

顾名思义,这个模块是spring最核心的部分,主要管理srping bean容器,包括bean工厂,应用上下文实现,除此之外还包含例如JNDI之类的企业服务,所有spring模块都构建于核心容器之上

Spring AOP模块

对面向切面编程提供支持,AOP可以帮助应用对象解耦

数据访问和集成

该模块主要包含

1.对JDBC模版代码进行抽取,简化数据访问层编程

2.对ROM框架进行集成,包括Hibernate、JPI(Java Persisternce API)、Java Data Object和Mybatis,spring的事务管理在致辞所有ORM框架以及JDBC

3.包含JMS(Java Message Service)上构件的spring抽象层,支持使用消息以异步异步的方式与其他应用集成

Web与远程调用

提供对Web应用的支持,包括集成一个强大的MVC框架

除此以外还提供多种与其他应用交互的远程调用方案,集成了RMI(Remote Method invocation)、Hessian、Burlap、JAX-WS,同时自带一个远程调用框架HTTP invoker,不仅如此spring还提供暴露和使用REST API的良好支持

Instrumentation

为tomcat提供织入代理,为tomcat传递class文件,几乎很少应用

测试

提供对spring应用的测试

spring在该模块为JNDI、servlet、Portlet编写的单元测试提供一系列mock对象实现,对于集成测试,该模块为加载Spring应用上下文中提供bean集合、bean交互提供支持

二.生态简介

事实上只使用Spring自带的20个模块很可惜,Spring Protfolio库提供了构建在Spring框架之上的框架和类库,以下几种只是简介,详细介绍请关注链接官网,或关注后续本人博客

Spring Web Flow 

建立与Spring MVC上的一款流程框架,基于会话式的Web应用(如向导功能),参考主页http://projects.spring.io/spring-webflow/

Spring Web Service

有别于servlet的一种web服务规范化API,具体内容可访问http://docs.spring.io/spring-ws/site/

Spring Security

Spring Security为Spring应用提供了声明式的安全机制,该服务依赖spring,访问http://projects.spring.io/spring-security/获取更多信息

Spring Integration

一个功能强大的EIP(Enterprise Integration Patterns),企业集成模式,网上搜索词条发现是一个与其他应用进行消息交互框架

推荐访问http://projects.spring.io/spring-integration/

Spring Batch

对数据大量操作是,批处理应用,详细请访问http://projects.spring.io/spring-batch/

Spring Data

Spring Data使得数据库使用变得非常容易,尽管关系型数据库是目前企业应用主流,但不是所有数据都有必要放在一张表的行和列中,NoSQL数据库是存储使用数据的新选择

但不管使用文档数据库MongoDB,图数据库Neo4j还是传统数据库,Spring Data都为持久化提供了一种简单编程模型,包括为多种不同类型的数据库提供自动化Repository机制,可以为你创建Repository的实现

Spring Boot

Spring Boot应用一种约定优于配置的理念(也可以理解为规范优于配置),大量依赖自动配置技术,能够消除很多Spring的配置,并且还提供了多个Starter项目,不管使用Maven还是Gradle都能减少Spring工程构件文件的大小

猜你喜欢

转载自blog.csdn.net/u012309392/article/details/83995217