Spring是个容器性质的框架,可以管理Bean对象的创建和销毁。Spring具有IOC和AOP的特性。
1.Spring实现了工厂模式的工厂类,这个类名为beanFactory,其实是个接口,在程序中通常使用BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在他的配 置文件中通过<bean>元素来创建实例对象的类名和实例对象的属性。
2.Spring提供了对IOC(控制反转)的支持,IOC是一种编程思想,也称为DI(依赖注入),简单说就是对象创建和使用的控制权转移到了Spring容器中,由Spring容器来控制,利 用这种思想可以很好地实现模块间的解耦。
3.Spring提供了对AOP(面向切面编程)技术的良好封装,简单说就是系统中有许多不相干的类的方法,在这众多方法中要加入系统功能的某些代码,比如加入日志,权限判断, 异常处理等,这种应用称为AOP。 实现AOP采用的是代理技术,客户端程序不再调用目标,而是调用代理类,代理类与目标类具有相同的方法声明,有两种方式可以实现方 法的声明。
①实现相同的接口。 JDK中采用Proxy类产生动态代理的方式为某个接口生成实现类,
②作为目标类的子类存在。 如果要为某个类生成子类,则采用CGLIB。
在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以Advice对象进行提供, 所以 如果要创建出代理对象,需要提供目标类和Advice对象, Spring提供了这种支持,只需要在Spring的配置文件中声明这两个元素即可实现代理和AOP功能,代码如下:
<bean id="proxy" type="org.spring.framework.aop.ProxyBeanFactory">
<property name= ''target' ref=""/>
<property name="advisor" ref=" "/>
</bean>