【Spring源码分析 前言】spring框架的概述、特点、核心技术

spring框架的概述

作为一个开源的设计层面框架,解决业务逻辑和其他各层的耦合问题,是一个分层的Java EE/SE一站式的轻量级开源框架,具有高内聚、低耦合的特点。

spring框架的特点

1. 作为工厂,将对象创建和依赖关系维护交给spring管理

2. 支持AOP编程,对某些方法增强

3. 支持声明式事务,通过配置完成对事务的管理

4. 支持整合Junit4测试,可以通过注解方便测试spring程序

5. 方便集合其他优秀框架,比如mybatis,hibernate等

spring框架的核心技术

spring的核心是控制反转(IOC)和面向切面编程(AOP)

控制反转IOC

将对象创建的权力反转给spring容器,面向对象编程的一种设计原则,可以降低程序之间的耦合度。

【Spring源码分析 前言】spring框架的概述、特点、核心技术

面向切面编程(AOP)

AOP是一种编程范式,对业务逻辑的各个部分隔离,降低业务逻辑和其他非业务逻辑模块的耦合度,提高通用程序的可重用性,从而使得业务层是需要专注业务逻辑的编写。

采用横向抽取机制,取代传统的纵向继承体系重复性代码,多用于性能监视、事务管理、安全检查、缓存等

AOP使得程序员不修改业务层代码而对其方法增强。

总的来说,AOP的使得程序减少重复的代码、提高开发效率、维护方便。

【Spring源码分析 前言】spring框架的概述、特点、核心技术

AOP底层实现原理:代理技术

Spring支持两种代理:JDK动态代理、CGLIB动态代理

JDK动态代理:要求被代理对象必须有接口,代理对象实现相同的接口,JDK动态代理只能对接口中的方法进行增强;

CGLIB代理:对类生成代理对象,不要求该类有接口,可以对任意方法增强