Liuqichun's Blog

Spring|IOC、AOP总结

Spring 的两个核心就是 IOC(Inversion of Control)容器和面向切面编程 AOP。

IOC 是 Spring 的 Bean 容器,负责项目中 Bean 的创建和依赖管理。使用时我们只需要用 XML 或注解指明依赖的对象,剩下的 IOC 会帮我们管理。IOC 实现的核心是依赖注入:初始化 Bean 时,一个对象往往依赖另一个对象,Spring 会帮我们自动创建依赖对象并把它注入到对象中。IOC 中的对象可以是单例或多例的,但多数是单例的,例如 @Service 和 @Controller 注解标识的就是单例对象。通过在 IOC 中提前创建好对象,提高了程序的运行速度。

Spring 的另一个核心是 AOP 切面编程。在程序开发过程中,难免会有大量重复的代码,例如事务的开启和关闭、打印日志等。我们可以把重复的代码提取出来,利用 AOP 技术复用这些代码,这些操作通常可以在方法执行前或执行后进行。AOP 是基于动态代理的设计思想实现的,基于 JDK Proxy 或 CGLIB,选择的依据是对象(被代理的方法)是否实现了接口:对象实现了接口就用 JDK 动态代理,否则就用 CGLIB 通过继承的方式实现代理。

<< Previous Post

|

Next Post >>

#Spring