IOC、AOP是spring的2个核心特性。理解这2个特性,有助于更好的解析源码。
IOC:控制反转。把创建对象的权利交给框架,这有利于解耦。
public class PageController { public String showPage(){ PageService page = new PageService(); return ""; } }
原先PageController中使用PageService,需要自己new创建对象,使用spring后,由容器创建PageService对象,并依赖注入到PageController对象。
@component public class PageController { @Autowire private PageService pageService; public String showPage(){ return ""; } }
AOP:面向切面。将程序功能中的频繁出现或者与主业务逻辑代码相关度不高的代码抽离出来,通过切面编程的方式在想要调用的时候引入调用的思想。在实际编程中,我们通常会遇到一些交叉业务逻辑(比如:日志,事务,安全等等),这是我们就可以封装一个封面,然后注入到目标对象(具体的业务逻辑)中去。
源码解析顺序
1、配置文件读取流程
2、单例Bean的初始化过程
3、FactoryBean实例化过程
4、详解Spring Bean生命周期
5、AOP 源码解析1——配置文件读取
6、AOP 源码解析2——动态代理
原文地址:https://www.cnblogs.com/xiaoliangup/p/11793348.html
时间: 2024-10-20 14:33:04