什么是Spring
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
看到Spring的构成接下来我们需要去理解IOC和Aop
Spring的AOP理解
AOP(Aspect Orient Programming)
AOP 要达到的效果是,保证开发者不修改源代码的前提下,去为系统中的业务组件添加某种通用功能。AOP 的本质是由 AOP 框架修改业务组件的多个方法的源代码,按照 AOP 框架修改源代码的时机,可以将其分为两类:
静态 AOP 实现, AOP 框架在编译阶段对程序源代码进行修改,生成了静态的 AOP 代理类(生成的 *.class文件已经被改掉了,需要使用特定的编译器),比如 AspectJ。
动态 AOP 实现, AOP 框架在运行阶段对动态生成代理对象(在内存中以 JDK 动态代理,或 CGlib 动态地生成 AOP 代理类),如 SpringAOP。
Spring的IoC理解
IOC(控制反转)
IOC(Inversion of Control 即控制反转):将对象交给容器管理。
谁控制谁、控制什么?为什么是反转?那些方面反转?
谁控制了谁?—是容器控制了对象
控制什么?主要控制了外部资源及生命周期
由容器帮我们查找并注入依赖的对象,对象只能被动的接收依赖对象,依赖对象的获取被反转了。
Spring Bean的生命周期
实例化 Instantiation
属性赋值 Populate
初始化 Initialization
销毁 Destruction
Spring中bean的作用域
singleton 在spring IOC容器中仅存在一个Bean实例,Bean以实例方式存在,默认值
prototype
request
session
什么是依赖注入
依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .
注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配
Bean对象依赖的