介绍:以下博客的内容都是依据《spring实战4》这本书、spring4.0 来总结。

一、spring作用 

 Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入dependencyinjection,DI)和面向切面编程(aspect-orientedprogramming,AOP)。Spring框架关注于通过DIAOP消除样板式代码来简化企业级Java开发。

spring作用:简化Java开发

  Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。

  bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组件必须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO。在以后章节中,我采用JavaBean的广泛定义,即POJO的同义词。

降低Java开发的复杂性,Spring采取了以下4种关键策略:

  • 基于POJO的轻量级和最小侵入性编程;
  • 通过依赖注入和面向接口实现松耦合;
  • 基于切面和惯例进行声明式编程;
  • 通过切面和模板减少样板式代码。

  几乎Spring所做的任何事情都可以追溯到上述的一条或多条策略。在
本章的其他部分,我将通过具体的案例进一步阐述这些理念,以此来
证明Spring是如何完美兑现它的承诺的,也就是简化Java开发。

二、俯瞰Spring的体系结构

我们现在首先浏览一下Spring的体系结构,了解一下Spring框架的基本组成部分。

1、Spring模块

  当我们下载Spring发布版本并查看其lib目录时,会发现里面有多个JAR文件。在Spring 4.0中,Spring框架的发布版本包括了20个不同的模块,每个模块会有3个JAR文件(二进制类库、源码的JAR文件以及JavaDoc的JAR文件)。完整的库JAR文件如图1.6所示。

图1.6 Spring框架由20个不同的模块组成

  这些模块依据其所属的功能可以划分为6类不同的功能,如图1.7所示。

图1.7 Spring框架由6个定义良好的模块分类组成

Spring核心容器

  • 容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、配置和管理。在该模块中,包括了Spring bean工厂,它为Spring提供了DI的功能。基于bean工厂,我们还会发现有多种Spring应用上下文的实现,每一种都提供了配置Spring的不同方式。
  • 除了bean工厂和应用上下文,该模块也提供了许多企业服务,例如E-mail、JNDI访问、EJB集成和调度。
  • 所有的Spring模块都构建于核心容器之上。当你配置应用时,其实你隐式地使用了这些类。贯穿所有章节,我们都会涉及到核心模块

Spring的AOP模块
  在AOP模块中,Spring对面向切面编程提供了丰富的支持。这个模块是Spring应用系统中开发切面的基础。与DI一样,AOP可以帮助应用对象解耦。借助于AOP,可以将遍布系统的关注点(例如事务和安全)从它们所应用的对象中解耦出来。

Web与远程调用

  • MVC(Model-View-Controller)模式是一种普遍被接受的构建Web应用的方法,它可以帮助用户将界面逻辑与应用逻辑分离。Java从来不缺少MVC框架,Apache的Struts、JSF、WebWork和Tapestry都是可选的最流行的MVC框架。
  • 虽然Spring能够与多种流行的MVC框架进行集成,但它的Web和远程调用模块自带了一个强大的MVC框架,有助于在Web层提升应用的松耦合水平。Spring的MVC框架除了面向用户的Web应用,该模块还提供了多种构建与其他应用交互的远程调用方案。Spring远程调用功能集成了RMI(Remote MethodInvocation)、Hessian、Burlap、JAX-WS,同时Spring还自带了一个远程调用框架:HTTP invoker。Spring还提供了暴露和使用REST API的良好支持。

Instrumentation
  Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能。具体来讲,它为Tomcat提供了一个织入代理,能够为Tomcat传递类文件,就像这些文件是被类加载器加载的一样。如果这听起来有点难以理解,不必对此过于担心。这个模块所提供的Instrumentation使用场景非常有限,我们不会介绍该模块。

测试

  通过该模块,你会发现Spring为使用JNDI、Servlet和Portlet编写单元测试提供了一系列的mock对象实现。对于集成测试,该模块为加载Spring应用上下文中的bean集合以及与Spring上下文中的bean进行交互提供了支持。

三、spring protfolio

spring protfolio几乎为每一个领域的java开发提供了编程模型:

- Spring Web Flow

- Spring Web Service

- Spring Security

- Spring Integretion

- Spring Batch

- Spring Data

- Spring Social

- Spring Mobile

- Spring for Android

- Spring boot

 

转载于:https://www.cnblogs.com/TvvT-kevin/p/9750897.html

spring学习总结——介绍相关推荐

  1. spring学习12 -Spring 框架模块以及面试常见问题注解等

    以下为spring常见面试问题: 1.Spring 框架中都用到了哪些设计模式? Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式-在AOP和remoting中被用的比较 ...

  2. 送给 Java 程序员的 Spring 学习指南

    https://www.infoq.cn/article/Ad-8ghcGGCNU572U6oEX 学习 Spring 的基础要求 Spring 官网首页是这么介绍自己的--"Spring: ...

  3. Spring学习总结一

    Spring框架IoC与DI思想及应用 Spring学习总结一 1.Spring是什么 2.Spring的优点 2.1.关键概念 2.2.Spring的优点 3.Spring的架构图 3.1.核心容器 ...

  4. Spring学习(九)Spring 和数据库编程【了解】

    本文借鉴:Spring学习,Spring框架总结 一.传统 JDBC 回顾 用一个大佬的demo来简单看一下 /*** 使用jdbc,根据id查询单个Student的信息*/ public class ...

  5. Spring学习(五)bean装配详解之 【XML方式配置】

    本文借鉴:Spring学习(特此感谢!) 一.配置Bean的方式及选择 配置方式 在 XML 文件中显式配置 在 Java 的接口和类中实现配置 隐式 Bean 的发现机制和自动装配原则 方式选择的原 ...

  6. Spring学习笔记1

    前言 Spring框架的学习路线: Spring第一天:Spring的IOC容器之XML的方式,Spring框架与Web项目整合 Spring第二天:Spring的IOC容器之注解的方式,Spring ...

  7. 服务监控 Spring Boot Actuator 介绍

    服务监控 Spring Boot Actuator 介绍 1. 概述 在本文中,我们将介绍Spring Boot Actuator.首先介绍一些Actuator的基础知识,然后详细讨论Spring B ...

  8. spring之基本介绍以及老版本框架的下载地址

    spring之基本介绍以及老版本框架的下载地址 第一:为什么要学习spring?学习spring能为我们在工作中的日常开发带来什么好处? 首先来了解一下spring:spring是一种开源的分层的相对 ...

  9. 【Spring学习笔记 九】Spring声明式事务管理实现机制

    什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...

最新文章

  1. 跨浏览器设置标签样式
  2. pyhton/Perl设置 sublime text2
  3. java maven centos7 yum安装
  4. 使数据区“可执行”的几种常规办法
  5. 调试你的Python代码
  6. 读书笔记:如何投论文
  7. Java High CPU故障排除指南–第1部分
  8. 干货集锦:200+生信范文、30+款软件、12类图片素材PPT,今年的SCI稳了!(附下载)...
  9. oracle导入步骤,Oracle导入dmp文件步骤
  10. python find函数_Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
  11. 总结UIViewController的view在有navBar和tabBar影响下布局区域的问题
  12. 不同特征值对应的特征向量
  13. 网页加载出现没有合适的负载均衡器_一篇文章彻底了解清楚什么是负载均衡
  14. C++软件调试与异常排查从入门到精通系列汇总
  15. 独家 | GAN大盘点,聊聊这些年的生成对抗网络 : LSGAN, WGAN, CGAN, infoGAN, EBGAN, BEGAN, VAE
  16. 清华教授发文劝退读博:​​我见过太多博士生精神崩溃、心态失衡、身体垮掉、一事无成!...
  17. 你一年就工作一天还想请假......
  18. 搜狗输入html,搜狗输入法:回家的路
  19. java人民币大小写转换函数_java开发_数字转换汉语中人民币的大写_完整版
  20. I.MX8修改rootfs镱像文件.sdcard方法

热门文章

  1. jQuery获取元素索引值index()方法
  2. The Largest Clique UVA - 11324( 强连通分量 + dp最长路)
  3. Java Servlet的配置文件web.xml配置内容和具体含义
  4. 构建高性能WEB站点笔记二
  5. 去除在页面上点击出现的大片蓝色
  6. 用 或 || 取代常规 if - else 结构
  7. .Net的 Web项目的打包过程
  8. centos usb转网口_centOS安装与配置minicom(串口转USB)
  9. HBase之超时机制
  10. shell 脚本字符串 分割或截取