Spring_框架介绍

Posted 奔跑的路奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring_框架介绍相关的知识,希望对你有一定的参考价值。

1 Spring概述

1.1 什么是框架?

框架(Framework):框(指其约束性)架(指其支撑性),在软件设计中指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。

 - 框架本身一般不完整到可以解决特定问题
 - 框架为扩展而设计的
 - 框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具也就是说框架时常配套了一些帮助解决某类问题的库或工具   

1.2 Spring是什么

Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。Spring 框架通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

1.3 Spring的优势

  • 方便解耦,简化开发:Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。
  • AOP 面向切面:Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。使得核心业务代码与服务器代码分离,可以提高代码的复用性,降低耦合度。其底层实现机制是通过动态代理。
  • IOC控制反转:Spring通过一种称作控制反转(IOC)的技术促进了松耦合。将创建对象的权利交给了Spring容器,而不需要开发者自己去new对象了,当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
  • 声明式事务的支持:只需要通过配置就可以完成对事务的管理,而无须手动编程。
  • 方便程序的测试:Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。

2 Spring的体系结构

2.1 核心容器

在这里插入图片描述

核心容器由 Spring-core,Spring-beans,Spring-context,Spring-context-support和Springexpression(SpEL,Spring 表达式语言,Spring Expression Language)等模块组成。

  • Spring-core 模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
  • Spring-beans 模块提供 BeanFactory,工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。
  • context 模块建立在由 core和 beans 模块的基础上建立起来的,它以一种类似于 JNDI 注册的方式访问对象。
  • Spring-expression 模块提供了强大的表达式语言,用于在运行时查询和操作对象图。

2.2 AOP模块

AOP 模块提供了面向方面(切面)的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,从而使实现功能的代码彻底的解耦出来。

2.3 数据访问/集成

使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此你可以保持你的数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。
JDBC 模块提供了 JDBC 抽象层,它消除了冗长的 JDBC 编码和对数据库供应商特定错误代码的解析。
ORM 模块提供了对流行的对象关系映射 API 的集成,包括 JPA、JDO 和 Hibernate 等。通过此模块可以让这些 ORM 框架和 Spring的其它功能整合,比如前面提及的事务管理。
事务模块为实现特殊接口类及所有的 POJO 支持编程式和声明式事务管理。

2.4 Web

Web 模块提供面向 web 的基本功能和面向 web 的应用上下文,比如多部分(multipart)文件上传功能、使用 Servlet 监听器初始化 IoC 容器等。它还包括 HTTP 客户端以及 Spring 远程调用中与web 相关的部分。
Web-MVC 模块为 web 应用提供了模型视图控制(MVC)和 REST Web服务的实现。Spring 的MVC 框架可以使领域模型代码和 web 表单完全地分离,且可以与 Spring 框架的其它所有功能进行集成。
Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。

最后,如果有问题,希望指正,一起进步。

以上是关于Spring_框架介绍的主要内容,如果未能解决你的问题,请参考以下文章

spring_01

第二周作业

[刘阳Java]_Spring入门_第1讲

[刘阳Java]_Spring相关配置介绍_第5讲

Spring+SpringMVC+MyBatis+Maven框架整合

Java大数据开发工程师__Spring学习笔记(待更新)