相关的概念
1.依赖对象 理解成一个整体,即依赖的对象
2.控制反转 则要分开理解 控制理解成对一个依赖对象的控制,反转就是转移,发生变化的意思,所以“控制反转”可以理解成 : 对依赖对象的控制发生了转移,那么是什么东西发生了转移呢!即就是对依赖对象的控制位置发了转移。(Inversion of Control ,IoC)
比如一个A对象引用B对象,必须在A对象内对B对象实例化,然后调用B实体的方法或属性,这个过程就是A对象对B对象的控制。
Spring容器对B对象的实例化,然后在A对象需要用到B实体的时候再把B实体注入到A对象中,这个过程对B对象的控制发生在Spring容器里,即对B对象(A的依赖对象)控制(实例化)位置发生了变化转移,转移也就是反转,即在Spring中这个过程叫做“控制反转”
如些术语解释不难理解了:
所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权[位置]的转移就是所谓反转。
3.依赖注入 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中(Dependency Injection)
4.面向切面编程(AOP)
使用Spring的好处
1.降低组件之间的耦合度,实现软件各层之间的解耦。
2.可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不 需处理复杂的事务传播,声明式事务管理(注解)
2.可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不 需处理复杂的事务传播,声明式事务管理(注解)
3.容器提供单例模式支持,开发人员不再需要自己编写实现代码。
4.容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
5.容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。
Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。