Spring 学习笔记(1) Spring 核心功能和概念 | 您所在的位置:网站首页 › spring核心模块的作用是用来支持 › Spring 学习笔记(1) Spring 核心功能和概念 |
一、什么是 Spring 框架 首先来介绍一下 Spring , 打开 Spring 官网我们可以看到 Spring 有众多框架,比如 SpringMVC、 SpringBoot、 Spring Cloud 等等,它是这些框架的集合,而 Spring Framework 是 Spring 里面的一个开源框架,并且 Spring 框架是其它框架的核心和基础。 ![]() 下面来看看 Spring 4.0 框架 ![]() 在实际的开发中,服务器端通常采用三层体系架构,分别为表现层 (web)、业务逻辑层(service)、持久层(dao)。Spring 致力于 Java EE 应用各层的解决方案,对每一层都提供了技术支持。在表现层提供了与 Spring MVC、Struts2 框架的整合,在业务逻辑层可以管理事务和记录日志等,在持久层可以整合 MyBatis、Hibernate 和 JdbcTemplate 等技术。 1. IoCIoC(Inversion of Control,翻译为“控制反转”)不是一个具体的技术,而是一种设计思想。与传统控制流相比,IoC 会颠倒控制流,在传统的编程中需要开发者自行创建并销毁对象,而在 IoC 中会把这些操作交给框架来处理,这样开发者就不用关注具体的实现细节了,拿来直接用就可以了,这就是控制反转。 当需要对象时,通过 IoC 容器帮对象找到相应的依赖直接注入。不用对象主动去获取. 2. DIDI(Dependency Injection,翻译为“依赖注入”)表示组件间的依赖关系交由容器在运行期自动生成,也就是说,容器知道哪个组件(类)运行的时候,需要哪个类;容器就能通过反射的形式将容器中准备好的对象注入(这里使用的是反射给属性赋值)到需求的组件中去 。 IoC 和 DI 事实上是同一概念从不同角度描述的,依赖注入其实就是控制反转思想的实现 3.AOPAOP 的全称是 “Aspect Oriented Programming", 即面向切面编程。和 OOP (面向对象编程)类似,是一种编程思想。AOP 采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。是开发人员可以集中处理某个关注点或横切逻辑,减少对业务代码的侵入,增强代码的可读性和可维护性。 AOP 的作用就是保证开发者在不修改源代码的前提下,为系统中的业务组件添加某种通用功能。AOP 就是代理模式的典型应用。 二、Spring 的体系结构1. Core Container 模块在 Spring 框架模块中,最重要的是核心容器,它是框架的基础。从图中可以看到,核心组件有四个部分,Beans 、Core 核心组件、Context 上下文组件和 SpEL 表达式语言组件组成。核心容器在项目构建时必须导入。 Beans 组件(spring-beans):主要解决了 Bean 的定义、创建和解析,也就是 Bean 工厂与 Bean 的装配。Core 组件(spring-core): IoC 和 DI 的最基本实现。Context (spring-context)组件:建立在 Core 和 Beans 模块的基础之上,ApplicationContext 接口是上下文模块的焦点。SpEL (spring-expression)组件:提供强大的表达式语言支持,支持访问和修改属性值。它们之间的依赖关系: ![]() 由于 spring-core 依赖 commons-logging 所以其他模块都依赖 logging 2. AOP、Aspects、Instrumentation 和 MessagingAOP 组件(spring-aop): 提供面向切面编程实现,比如日志记录、权限控制等通用功能和业务逻辑分离技术。降低业务逻辑和通用功能的耦合。Aspects 组件(spring-aspects):提供 AspectJ 的集成,是一个功能强大且成熟的 AOP 框架。Instrumentation 组件(spring-instrumentation):提供类工具的支持和类加载器的实现。messaging 组件(spring-messageing): 提供对消息传递体系结构和协议的支持。依赖关系: ![]() 它们的依赖关系: ![]() 它们的依赖关系: ![]() spring-test 模块支持 JUnit 或 TestNG 对 Spring 组件进行单元测试和集成测试。并且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。 参考文献1. spring framework 核心框架体系结构 2. spring 体系结构 |
CopyRight 2018-2019 实验室设备网 版权所有 |