spring学习之spring概述和体系结构

Table of Contents

 

01. Spring概述

1.1 spring的优势

1.2 spring的体系结构


01. Spring概述

 Spring是⼀个开源框架,Spring是于2003 年兴起的⼀个轻量级的Java 开发框架,由Rod Johnson 在其 著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍⽣⽽来。它是为 了解决企业应⽤开发的复杂性⽽创建的。Spring使⽤基本的JavaBean来完成以前只可能由EJB完成的事 情。然⽽,Spring的⽤途不仅限于服务器端的开发。从简单性、可测试性和松耦合的⻆度⽽⾔,任何 Java应⽤都可以从Spring中受益 简单来说,Spring是⼀个轻量级的控制反转(IoC)⾯向切⾯(AOP)的容器框架

1.1 spring的优势

1. ⽅便解耦,简化开发: Spring就是⼀个⼤⼯⼚,专⻔负责⽣成Bean,可以将所有对象创建和依赖关系维护由Spring管理

2. AOP编程的⽀持: Spring提供⾯向切⾯编程,可以⽅便的实现对程序进⾏权限拦截、运⾏监控等功能

3. 声明式事务的⽀持: 只需要通过配置就可以完成对事务的管理,⽽⽆需⼿动编程

4. ⽅便程序的测试: Spring对Junit4⽀持,可以通过注解⽅便的测试Spring程序

5. ⽅便集成各种优秀框架: Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、 MyBatis、Quartz等)的⽀持

6. 降低JavaEE API的使⽤难度 Spring对JavaEE开发中⼀些难⽤的API(JDBC、JavaMail、远程调webservice⽤等),都提供了封 装,使这些API应⽤难度⼤⼤降低

7. Java源码是经典学习范例 Spring的源代码设计精妙、结构清晰、匠⼼独⽤,处处体现着⼤师对Java设计模式灵活运⽤以及对 Java技术的⾼深造诣。它的源代码⽆意是Java技术的最佳实践的范例

1.2 spring的体系结构

Spring 框架是⼀个分层架构,,它包含⼀系列的功能要素并被分为⼤约20个模块。这些模块分为Core Container、Data Access/Integration、Web、AOP(Aspect Oriented Programming)、 Instrumentation和测试部分,如下图所示

  • Core Container(核⼼容器)

Spring 的核⼼容器是其他模块建⽴的基础,它主要由Bean模块、Core模块、Context模块、和 SpEL(Spring Expression Language,spring 表达式语⾔)模块组成,具体如下:

  1. Bean 模块:提供了BeanFactory,是⼯⼚模式的经典实现,spring将管理对象称为bean。

  2. Core 核⼼模块:提供了Spring 框架的基本组成模块,包括IoC和DI功能。

  3. Context 上下⽂模块:建⽴在Bean和 core模块的基础上,它是访问定义和配置的任何对象的 媒介。其中ApplicationContext 接⼝是上下⽂模块的焦点。

  4. SpEL 模块:是Spring 3.0 后新增的模块,它提供了Spring Expression Language ⽀持,是运 ⾏时查询和操作对象图的强⼤的表达式语⾔。

  • Data Access/Integration(数据访问/集成)
  1. JDBC 模块:提供了⼀个JDBC的抽象层,⼤幅度的减少了开发过程中对数据库操作的编码。

  2. ORM 模块:对流⾏的对象关系映射API,包括JPA、JDO和Hiberate提供了集成⽀持

  3. Transactions 模块:⽀持对实现特殊接⼝以及所有的POJO类的编程和声明式的事务管理

  • Web Spring的Web层包括WebSocket、Servlet、Web和Portlet模块,具体如下:
  1. WebSocket 模块:Spring 4.0以后增加的模块,它提供了WebSocket 和SockJS的实现以及对 STOMP的实现

  2. Servlet模块:也称为Spring-webMVC模块,它包含了Spring的模型——视图——控制器 (MVC)和REST Web Services实现的web应⽤程序。

  3. Web 模块:提供了基本的Web开发集成特性,例如:多⽂件上传功能、使⽤Servlet监听器来 初始化IoC容器以及Web应⽤上下⽂。

  4. Protlet模块:提供了再Protlet环境中实现MVC实现,类似Servlet模块的功能

  • 其他模块
  1. AOP模块:提供了⾯向切⾯编程实现,允许定义⽅法拦截器和切⼊点,将代码按照功能进⾏ 分离,以降低耦合性。

  2. Aspects 模块:提供了与AspectJ的集成功能,AspectJ是⼀个功能强⼤且成熟的⾯向切⾯编程 (AOP)框架。

  3. Instrumentation模块:提供了类⼯具的⽀持和类加载器的实现,可以在特定的应⽤服务器中 使⽤。

  4. Messaging模块:Spring 4.0以后新增的模块,它提供了消息传递体系结构和协议的⽀持。

  5. Test模块:提供了对单元测试和集成的⽀持。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值