Spring概念
2020-09-29 本文已影响0人
刚子来简书啦
Spring致力于简化企业级Java开发,促进代码的松散耦合。成功的关键在于依赖注入和AOP。Spring通过面向POJO编程、DI、切面和模板技术来简化Java开发中的复杂性。
POJO(Plain Old Java Object)简单老式Java对象
DI(Dependency Injection)依赖注入
AOP(Aspect-Oriented Programming)面向切面编程
在Spring中,对象无需自己查找或创建与其所关联的其它对象。相反,容器负责把需要相互协作的对象引用赋予各个对象。创建应用对象之间协作关系的行为通常称为装备,这也是依赖注入的本质。
Spring提供了三种主要的装配机制:
- 在XML中进行显式配置
- 在Java中进行显式配置
- 隐式的bean发现机制和自动装备
Spring从两个角度来实现自动化装配:
- 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean
- 自动装配(autowiring):Spring自动满足bean之间的依赖
Spring切面可以应用5种类型的通知:
- 前置通知(Before):在目标方法被调用之前调用通知功能;
- 后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;
- 返回通知(After-returning):在目标方法成功执行之后调用通知;
- 异常通知(After-throwing):在目标方法抛出异常之后调用通知;
- 环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。
Spring提供了4种类型的AOP支持:
- 基于代理的经典 Spring AOP;
- 纯POJO切面;
- @AspectJ 注解驱动的切面;
- 注入式AspectJ切面(适用于Spring各版本)。