Spring工作原理分析

1. 控制反转IoC

Spring的核心功能就是IoC,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。
具体来说就是,在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过property标签说明该类的属性名、通过constructor-args说明构造方法的参数。当通过applicationContext.getBean(“bean的id名称”)得到一个类实例时,就是以bean标签的类名、属性名、构造方法的参数为基础,通过反射的方式来实例对象,唤起对象的set方法设置属性值、通过构造方法的newInstance实例化得到对象。
关于反射机制,可以参看Java知识整理——反射。

2. 面向切面编程AOP

第二大功能就是AOP,其机理来自于代理模式,代理模式有三个角色分别是通用接口、代理、真实对象。代理、真实对象实现的是同一接口,将真实对象作为代理的一个属性,向客户端公开的是代理,当客户端调用代理的方法时,代理找到真实对象,调用真实对象方法,在调用之前之后提供相关的服务,如事务、安全、日志。

你可能感兴趣的:(动态代理,AOP,IOC,依赖注入,控制反转)