Spring的理解
1、Spring实现了工厂模式的工厂类,这个类名为BeanFactory(接口),
在程序中通常用他的子类ApplicationContext。
Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于
创建实例对象的类名和实例对象的属性。
工厂模式是一种生产对象型的设计模式,有了工厂模式后,当需要某个类的
对象时,就不再需要new指定的类,而是调用工厂中的方法即可。也就不需要
关心对象的创建过程。甚至有时候也许你需要的对象只要是某种大分类的类型
就可以了,而不必是某个指定的类型。不会过渡依赖某个类,这些类都是
易于被替换的,以提高整个项目的可维护性。
2、Spring提供了对IOC(控制反转)良好支持,IOC也是一种编程思想,
是一种架构艺术,利用这种思想可以很好地实现模块之间的解耦。
IOC就是对对象的创建、维护、销毁等生命周期的控制,这个过程一般是
由我们的程序去主动控制。
DI也是IOC的重要实现。一个对象的创建往往会涉及到其他对象的创建,
这就是依赖。IOC机制既然负责了对象的创建,
那么这个依赖关系也就必须由IOC容器负责起来。
负责的方式就是DI——依赖注入,通过将依赖关系写入配置文件,
然后在创建有依赖关系的对象时,由IOC容器注入依赖的对象。
如在创建A时,检查到有依赖关系,IOC容器就把A依赖的对象B
创建后注入到A中(组装,通过反射机制实现),然后把A返回给对象请求者,完成工作。
3、Spring提供了对AOP技术的良好封装,AOP称为面向切面编程,
就是系统中有很多各不相干的类的方法,
在这些众多方法中要加入某种系统功能的代码,
如加入日志,权限判断,异常处理,这种应用称为AOP。
实现AOP功能采用的是代理技术,客户端程序不再调用目标,
而调用代理类,代理类与目标类对外具有相同的方法声明。
有两种方式可以实现相同的方法声明,一是实现相同的接口,
二是作为目标的子类。在JDK中采用Proxy类,产生动态代理的
方式为某个接口生成实现类,如果要为某个类生成子类,则采用CGLIB。
系统功能的代理以Advice对象进行提供,要创建出代理对象,
至少需要目标类和Advice类。Spring提供了这种支持,
只需要在Spring配置文件中配置这两个元素即可实现代理和AOP功能
转载至:https://blog.csdn.net/qq_21896123/article/details/79814817