Spring框架基础知识
本人博客文章网址: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框架基础知识的更多相关文章
- 4-1 Spring框架基础知识
Spring框架基础知识 1.Spring 框架作用 主要解决了创建对象和管理对象的问题. 自动装配机制 2.Spring 框架 (Spring容器,JavaBean容器,Bean容器,Spring容 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- PHP面试(二):程序设计、框架基础知识、算法与数据结构、高并发解决方案类
一.程序设计 1.设计功能系统——数据表设计.数据表创建语句.连接数据库的方式.编码能力 二.框架基础知识 1.MVC框架基本原理——原理.常见框架.单一入口的工作原理.模板引擎的理解 2.常见框架的 ...
- Spring框架基础2
Spring框架基础2 测试Spring的AOP思想和注解的使用 导包(在前面的基础上添加) SpringAOP名词解释 AOP编程思想:横向重复代码,纵向抽取:就是说多个地方重复的代码可以抽取出来公 ...
- DDD框架基础知识
DDD框架基础知识 参考: https://www.cnblogs.com/zhili/p/OnlineStorewithDDD.html(领域驱动设计,分层架构) https://www.cnblo ...
- Spring学习指南-第二章-Spring框架基础(完)
第二章 Spring框架基础 面向接口编程的设计方法 在上一章中,我们看到了一个依赖于其他类的POJO类包含了对其依赖项的具体类的引用.例如,FixedDepositController 类包含 ...
- Spring MVC基础知识整理➣环境搭建和Hello World
概述 Spring MVC属于SpringFrameWork的产品,采用Model-View-Controller进行数据交互,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...
- spring之基础知识总结
spring是轻量级的(非侵入式,不用继承spring中的父类等).Spring框架主要提供了IoC容器.AOP.数据访问.Web开发.消息.测试等相关技术.本文主要介绍Spring中的一些小知识点, ...
- Spring框架基础
1 Spring框架 1.1 Spring的基本概念 是一个轻量级的框架,提供基础的开发包,包括消息.web通讯.数据库.大数据.授权.手机应用.session管理 ...
随机推荐
- Redis Sentinel中的机制与原理详解
序言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案.实际上这意味着你可以使用Sentinel模式创建一个可以不用人为干预而应对各种故障的Redis部署. 它的主要功能有以 ...
- Windows7 java-jdk1.7安装及设置变量过程
jdk安装的次数较少,容易忘记,这里专门记录一下. 1:jdk1.7网上到处都是可以随便下载一个.然后进行安装,不过在安装过程中把安装路径单独记忆一下,在配置变量的时候会用到. 2:安装完JDK后配置 ...
- Asp.Net MVC4中的全局过滤器,
可以对整个项目进行全局监控. 新建一个MVC4项目,可以在global.asax文件中看到如下代码: FilterConfig.RegisterGlobalFilters(GlobalFilters ...
- JS中的普通函数和箭头函数
最近被问到了一个问题: >javaScript 中的箭头函数 (=>) 和普通函数 (function) 有什么区别? 我当时想的就是:这个问题很简单啊~(flag),然后做出了错误的回答 ...
- 当git上文件大小写重命名的修改时(git大小写敏感/默认不敏感),如何提交
git默认是大小写不敏感!!! 加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在termin ...
- 如何修改vsftpd的默认根目录/var/ftp/pub到另一个目录?
修改ftp的根目录只要修改/etc/vsftpd/vsftpd.conf文件即可: 加入如下几行: local_root=/var/www/html chroot_local_user=YES ano ...
- java集合体系
Collection接口: 1.单列集合类的根接口. 2.定义了可用于操作List.Set的方法--增删改查: 3.继承自Iterable<E>接口,该接口中提供了iterator() 方 ...
- 开源 & 在线免费使用:升讯威 周报系统
这个周报系统大约写于2015年,缘起当时所带的开发团队需要逐步建立或完善一些项目管理方法. 在调研了网上的诸多项目管理或周报/日报管理系统之后,并没有找到符合当时情况的系统,这里最大的问题不是网上既有 ...
- Unity3D中的AI架构模型
我们都知道现在AI(由人工制造出来的系统所表现出来的模拟人类的智能活动)非常的火,可以说是家喻户晓.当然,在游戏中,AI也是到处可以找到的,对于AI,我们应该关注的问题是如何让游戏角色能够向人或动物那 ...
- 分块编码(Transfer-Encoding: chunked)
参考链接: HTTP 协议中的 Transfer-Encoding 分块传输编码 一.背景: 持续连接的问题:对于非持续连接,浏览器可以通过连接是否关闭来界定请求或响应实体的边界:而对于持续连接,这种 ...