spring 的优点?
- 降低了组件之间的耦合性 ,实现了软件各层之间的解耦
- 可以使用容易提供的众多服务,如事务管理,消息服务等
- 容器提供单例模式支持
- 容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
- 容器提供了众多的辅助类,能加快应用的开发
- spring对于主流的应用框架提供了集成支持,如Hibernate,JPA,Struts等
- spring属于低侵入式设计,代码的污染极低
- 独立于各种应用服务器
- spring的DI机制降低了业务对象替换的复杂性
- spring的高度开放性,并不强制应用完全依赖于spring,开发者可以自由选择spring的部分或全部
什么是DI机制?
- 依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者因此也称为依赖注入。
什么是AOP?
- 面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面:
- 面向切面编程提供声明式事务管理
- spring支持用户自定义的切面
- 面向切面编程(AOP)是对面向对象编程(OOP)的补充,面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,OOP是静态的抽象,AOP是动态的抽象,是对应用执行过程中的步骤进行抽象,从而获得步骤之间的逻辑划分。
- AOP框架具有的两个特征:
- 各个步骤之间的良好隔离性
- 源代码无关性