如你所见,spring框架的核心是关注于如何使用DI、AOP和模板来让企业级java开发变得更简单。spring确实也是这样做的,所以很值得你去使用它。不过spring内容可能比你所能看到的要多很多。在spring框架中,你可能找到几种使java开发变得容易的方式。但是spring框架是构建在核心框架的的一个生态系统,将spring延伸到web service,REST,mobile和NoSQL领域。

  首先,让我们分解下spring核心框架,看看它带来的价值。然后我们会将我们的视野集中在spring其他的产品上。

spring modules

  当你下载发布的spring并且研究它的库文件夹时候,你会发现有一些JAR文件。比如spring 4.0,在spring发布的框架中有20个独立的模块,每个模块都包含3个JAR文件(二进制文件,源码文件,JavaDoc文件).。下面是完整的图示

这些模块可以安排到6个功能分类中,如下图所示

总的来说,这些模块几乎提供了开发企业级应用的所有东西,但是你不必这这些都引进到你的应用中。你可以自由的选择适合你应用的几个模块,当它们不能满足你的需求时候在看看其他选择。spring也提供了和其他框架和类库的整合,所以你不必自己来写。接下来我们来一个个看下图片中的模块。

  • core spring container

  容器是spring框架的核心,它管理支持spring应用的bean的创建和配置。spring bean factory通过spring DI来完成这些操作。几个spring application context实现都上构建在bean factory基础上。除了上面的两个功能外,这个模块还支持很多企业服务比如email,JNDI访问,EJB整合,调度。所有其他的模块都是构建在core container上。当你配置你的应用的时候可以含蓄的使用这些类。核心模块会贯穿到整本书。

  • spring's aop module

  在AOP模块中,Spring提供丰富的面向切面编程支持。该模块作为支持Spring应用的基础服务,用于用户开发自己的切面功能。和DI一样,AOP支持松耦合。但是使用AOP,应用级别的概念(比如事务和安全)和核心业务是分离的。

  • data access and integration

  

spring 第一篇(1-3):鸟瞰spring蓝图的更多相关文章

  1. spring 第一篇(1-1):让java开发变得更简单(下)转

    spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...

  2. Spring第一篇

    我计划用3到五篇文章来描述Spring,这是第一篇 1 . 什么是Spring Spring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...

  3. 初学Java ssh之Spring 第一篇

    之前虽然毕业前实习的工作是使用的C# .NET语言,但是,毕业后还是果断应聘Java.虽然自己对Java的理解不如C#深入,只是对基础知识比较熟悉,但还是义无返顾了··· 虽然应聘经历比较坎坷,但最终 ...

  4. spring框架篇(一)-------spring简介与配置文件使用控制反转事例

    spring简介 Spring 是一个开源框架,中文意思就是春天,也许是作者想让自己的这个框架给Java开发人员带来春天吧.其官方网站是 https://spring.io/ ,可以在官方网站下载到完 ...

  5. Spring MVC篇一、搭建Spring MVC框架

    本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ...

  6. Spring入门篇——第7章 Spring对AspectJ的支持

    第7章 Spring对AspectJ的支持 介绍Spring对AspectJ的支持 7-1 AspectJ介绍及Pointcut注解应用 实例 完成了在xml文件的配置 7-2 Advice定义及实例 ...

  7. Spring第一篇【介绍Spring、引入Spring、Spring六大模块】

    前言 前面已经学习了Struts2和Hibernate框架了.接下来学习的是Spring框架-本博文主要是引入Spring框架- Spring介绍 Spring诞生: 创建Spring的目的就是用来替 ...

  8. spring 第一篇(1-2):管理你的beans

    在基于spring的应用中,你的应用对象存活在spring container(容器中).容器创建,将它们装配到一起.还有配置和管理它们完整的生命周期(从生到死) 下一章节,你会看到如何配置Sprin ...

  9. SSH框架之Spring第一篇

    1.1. spring概述: 1.1.1 spring介绍 : Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control : 反 ...

随机推荐

  1. Delphi 二维码产生和扫描

    Zint用于产生二维码. Zxing用读取二维码. VFrames.pas和VSample.pas用于摄像头. 另附带摄像头相关的类库,也可用开源的dspack也可用于摄像头的需求. 以上为开源的信息 ...

  2. Java高级架构师(一)第24节:加入ehcache,把工程加入到Git

    ehcache的maven配置: <!-- ehcache的jar --> <dependency> <groupId>net.sf.ehcache</gro ...

  3. mybatis-xml特殊字符处理

    1. 使用CDATA区: 它的全称为character data,以"<![CDATA[ "开始,以" ]]>" 结束,在两者之间嵌入不想被解析程序 ...

  4. Centos 6.5 优化 一些基础优化和安全设置

    原文链接:http://www.centoscn.com/CentosSecurity/CentosSafe/2015/0424/5263.html 本文 centos 6.5 优化 的项有18处: ...

  5. oracle 中的%type,%rowtype

    oracle 中的%type,%rowtype1.使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的f ...

  6. kernel简介

    内存管理 一般来看有三种类型的地址:物理地址.线性地址和逻辑地址,逻辑地址的精髓在于将地址分成两部分:段基地址+偏移,翻译的过程如下: 线性地址的精髓在于将所有的内存按照一定的大小分成了一页一页,对多 ...

  7. Gitlab系列八之重置管理员密码

    gitlab web登入密码忘记以后可以用如下方式修改密码 [root@gitlat-test gitlab]# gitlab-rails console production Loading pro ...

  8. Linux GPRS模块问题

    这是一个硬件问题,不过被我这个学软件的给遇到了.很尴尬,纠结了很久. GPRS模块如果没有插上sim卡,开机之后一切正常.一旦插上卡之后开机大约过十秒钟之后会自动关机.并在串口上面打印一下信息: II ...

  9. IDEA Maven 下载jar

    转载地址:https://www.cnblogs.com/hongwz/p/5456578.html 本文主要介绍通过配置Maven来下载需要用的jar包. 比如我现在用到把字符串转成json对象,这 ...

  10. MySQL5.6 怎样优化慢查询的SQL语句 -- SQL优化

    上篇:MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍 在实际的日志分析中,通常慢日志的log数量不少,同一时候同样的查询被记录的条数也会非常多.这里就须要怎样从慢日志查询中找到最有问题 ...