本人博客文章网址:https://www.peretang.com/basic-knowledge-of-spring-framework/


Spring框架简介

Spring , 一个开源的框架 , 由Rod Johnson创建. Spring是为了解决企业应用开发的复杂性而创建的 , 可以让简单的JavaBeans/POJO来实现之前只有EJB[1]才能完成的事情. Spring还提供了大量API简化与其他第三方框架的集成.

纵览Spring , 你会发现Spring可以解决非常多的问题 , 但归根到底 , 所有Spring提供的API/解决方案的理念都可以追溯到Spring最根本的理念上 "简化Java开发" .

▲Spring=简化Java开发

Spring策略与核心

Spring为了降低Java开发复杂性的4大关键策略/核心

1. 基于POJO的轻量级和最低侵入性编程

2. 通过依赖注入和面向接口实现松耦合

3. 基于切面和惯例进行声明式编程

4. 通过切面和模版减少板式代码

基本所有Spring的API/解决方案都可以追溯到上述的一条或多条策略中.

Spring缺点

虽然Spring能降低复杂性 , 但是当Spring发展到现在4.X , Spring已然是一个很复杂的框架.

另Spring的最初目标是一个轻量级的容器框架 , 但是发展到现在Spring4.X也已经是一个重量级框架.

最后虽然Spring是最小的侵入性 , 但是它带给了我们最大的依耐性.

Spring模块

Core模块

spring-core,spring-beans : 框架的最基础模块,其提供了IOC和依赖注入等功能

spring-context : 提供了一种访问对象的上下文对象

spring-context-support : 提供了将第三方库集成到上下文中的功能

spring-expression(SPEL) : 提供了强大的表达式语言支持 , 减少工作量

AOP模块

spring-aop : 提供了一个符合AOP规范的面向切面的API实现

spring-aspects : 提供了与AspectJ的集成

数据访问集成模块

spring-jdbc : 提供简化JDBC编程的API

spring-tx : 提供简化事务管理和编程的API

spring-orm : 提供简化ORM规范[2]编程的API , 并提供对JPA , Hibernate的支持

spring-oxm : 提供简化OXM规范[3]编程的API

spring-jms : 提供简化JMS规范[4]编程的API

Web模块

spring-web : 提供简化基本Web功能编程的API

spring-webmvc,spring-webmvc-portlet : 提供简化MVC[5]和RESTful[6]编程的API

spring-websocket : 提供简化Websocket编写的API

测试模块

spring-test : 提供对单元测试和集成测试支持的组件 , 简化测试用例编程的API

信息模块

spring-messaging : 支持消息架构和协议

设备模块

spring-instrument : 提供了在某些应用服务器中使用的类检测支持和类加载器实现

spring-instrument-tomcat : 提供了在Tomcat中使用的类检测支持和类加载器实现

Spring架构图

注释

[1]这里的EJB指的是EJB2.X,因为从EJB3.X规范开始也可以使用POJO来实现EJB规范。

[2]对象关系映射 , 用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去.

[3]Object XML Mapping , 数据实体对象与XML节点之间的映射.

[4]Java消息服务 , JavaEE规范中的一员 , 负责与信息中间件(MOM)进行交互的API. 参考 : JAVAEE规范基础知识

[5]MVC是一种使用 MVC (Model View Controller 模型-视图-控制器) 设计创建 Web 应用程序的模式.

[6]RESTful一种软件架构风格.

Spring框架基础知识的更多相关文章

  1. 4-1 Spring框架基础知识

    Spring框架基础知识 1.Spring 框架作用 主要解决了创建对象和管理对象的问题. 自动装配机制 2.Spring 框架 (Spring容器,JavaBean容器,Bean容器,Spring容 ...

  2. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  3. PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类

    一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...

  4. Spring框架基础2

    Spring框架基础2 测试Spring的AOP思想和注解的使用 导包(在前面的基础上添加) SpringAOP名词解释 AOP编程思想:横向重复代码,纵向抽取:就是说多个地方重复的代码可以抽取出来公 ...

  5. DDD框架基础知识

    DDD框架基础知识 参考: https://www.cnblogs.com/zhili/p/OnlineStorewithDDD.html(领域驱动设计,分层架构) https://www.cnblo ...

  6. Spring学习指南-第二章-Spring框架基础(完)

    第二章 Spring框架基础 面向接口编程的设计方法 ​ 在上一章中,我们看到了一个依赖于其他类的POJO类包含了对其依赖项的具体类的引用.例如,FixedDepositController 类包含 ...

  7. Spring MVC基础知识整理➣环境搭建和Hello World

    概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...

  8. spring之基础知识总结

    spring是轻量级的(非侵入式,不用继承spring中的父类等).Spring框架主要提供了IoC容器.AOP.数据访问.Web开发.消息.测试等相关技术.本文主要介绍Spring中的一些小知识点, ...

  9. Spring框架基础

    1         Spring框架 1.1           Spring的基本概念 是一个轻量级的框架,提供基础的开发包,包括消息.web通讯.数据库.大数据.授权.手机应用.session管理 ...

随机推荐

  1. JavaScript数据结构——队列的实现

    前面楼主简单介绍了JavaScript数据结构栈的实现,http://www.cnblogs.com/qq503665965/p/6537894.html,本次将介绍队列的实现. 队列是一种特殊的线性 ...

  2. 因为本地没有配置 localhost 导致的 eclipse 的奇葩问题

    因为电脑没有配置 127.0.0.1 localhost,已经碰到两次奇葩问题了. 问题一: 我的博文http://www.cnblogs.com/sonofelice/p/5143746.html中 ...

  3. 二级C考点汇总

    1.变量命名的合法性2.数据类型的转换,分为强类型和隐式类型3.字符串:字符串的声明.定义和使用,通常结合数组和指针 4.数组:下标的转换及数组的顺序存储5.函数:声明.定义.调用,递归函数(如菲薄纳 ...

  4. 关于js中两种定时器的设置及清除(转载)

    1.JS中的定时器有两种: window.setTimeout([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,执行对应的方法 ...

  5. WINFROM 无边框窗体的移动和改变大小

    因为去掉了边框  移动和调整大小都用不了了,可以调用WIN32的API来实现 1.定义必须常量 ; ; ; ; ; ; const int Guying_HTBOTTOMLEFT = 0x10; ; ...

  6. flex中日期的格式化

    今天我做的项目中需要把时间给拆分了,形式为:yyyy-MM-DD HH mm, 下面是我的代码实现: <?xml version="1.0" encoding="u ...

  7. iOS开发之计算文字尺寸

    /** *  计算文字尺寸 * *  @param text    需要计算尺寸的文字 *  @param font    文字的字体 *  @param maxSize 文字的最大尺寸 */ - ( ...

  8. 在NAS设备上用NFS服务为RAC数据库和集群件存储oracle文件时的mount选项

    今天在家折腾自己的小实验室,把自己NAS上的一个目录用NFS挂载到一套11g RAC的实验环境中. 当我在备份数据库到NAS上时,发现一个奇怪的问题,同样的目录下,默认backup 备份集的情况,备份 ...

  9. 维护Study

    ##老师发了一个study来让我们纠错维护,整个软件是日程管理系统,分为欢迎界面,登录 注册界面,提醒界面添加日程界面,还有个人中心等.一些主要代码老师让我们把缺失部分去维护.首先我们读一下主要代码# ...

  10. Apache优化

    控制MaxClients的设置,以避免服务器产生太多的子进程而发生交换.进程间的数据交换会占用很大内存,数据交换产生的滞后使用户总感觉"不够快",所以用户就可能去按"停止 ...