Spring实现了工厂模式的工厂类BeanFactory,用于管理容器中的Bean.
(1)Ioc (控制反转) : 通过BeanFactory来获取要管理的bean,方法:getBean("id"), id配置文件applicationContext.xml文件中bean的id,由Spring来创建这个Bean的实例对象的类名和属性。Ioc是一种编程思想,利用这种思想可以实现模块之前的解耦合。
(2)DI(依赖注入),让Bean与Bean之间通过配置文件的形式组织在一起,而不是通过硬编码的形式耦合在一起。
Spring的重点在于Ioc和Aop模式
Spring的设计原理是非侵入式的,在实际业务中感觉不到Spring框架的存在,因为它只是帮忙产生一个实例,把实例分配给需要的对象,这种设计可以随时随地把某个业务逻辑轻松的从整个系统中抽离出来,再无任何修改的用到其他系统中。实现了代码的重用。
Spring提供了对Aop良好封装,Aop称为面向切面编程,就是系统中有很多不相干的类的方法,在这些方法中要加入某种系统功能的代码,例如:日志,权限,异常处理等。这种应用就称为Aop.实现Aop采用的是代理技术,客户端程序不再调用目标而是调用代理。