SpringIoC的应⽤场景
1. 在 Java EE企业应⽤开发中,前⾯介绍的IoC(控制反转)设计模式,是解耦组件之间复杂关系的利器,Spring IoC模块就是这个模式的⼀种实现。
javabean是干嘛的2. 在EJB模式中,应⽤开发⼈员需要编写EJB组件,⽽这种组件需要满⾜EJB容器的规范,才能运⾏在EJB容器
中,从⽽获取事务管理、⽣命周期管理这些组件开发的基本服务。
3. 从获取的基本服务上看,Spring提供服务和EJB容器提供的服务并没有太⼤的差别,只是在具体怎样获取服务的
⽅式上,两者的设计有很⼤的不同:在Spring中,Spring IoC提供了⼀个基本的JavaBean容器,通过IoC模式管理依赖关系,并通过依赖注⼊和AOP切⾯增强了为JavaBean这样的POJO对象赋予事务管理、⽣命周期管理等基本功能;⽽对于EJB,⼀个简单的EJB组件需要编写远程/本地接⼝、Home接⼝以及Bean的实现类,⽽且EJB 运⾏是不能脱离EJB容器的,查其他EJB组件也需要通过诸如JNDI这样的⽅式,从⽽造成对EJB容器和技术规范的依赖。也就是说Spring把EJB组件还原成了POJO对象或者JavaBean对象,降低了应⽤开发对传统J2EE技术规范的依赖。
4. 同时,在应⽤开发中,以应⽤开发⼈员的⾝份设计组件时,往往需要引⽤和调⽤其它组件的服务,这种依赖关
系如果固化在组件设计中,就会造成依赖关系的僵化和维护难度的增加,这个时候,如果使⽤IoC容器,把资源获取的⽅向反转,让IoC容器主动管理这些依赖关系,将这些依赖关系注⼊到组件中,那么会让这些依赖关系的适配和管理更加灵活。
5. 在具体的注⼊实现中,接⼝注⼊(Type 1 IoC),setter注⼊(Type 2 IoC),构造器注⼊(Type 3 IoC)是主要的
注⼊⽅式。在Spring的IoC设计中,setter注⼊和构造器注⼊是主要的注⼊⽅式;相对⽽⾔,使⽤Spring时setter 注⼊是常见的注⼊⽅式,⽽且为了防⽌注⼊异常,Spring IoC容器还提供了对特定依赖的检查。
6. 另⼀⽅⾯,在应⽤管理依赖关系时,可以通过IoC容器将控制进⾏反转,在反转的实现中,如果能通过⽂本来完
成配置,并且还能通过⼯具对这些配置信息进⾏可视化的管理和浏览,那么肯定是能够提⾼对组件关系的管理⽔平,并且如果耦合关系需要变动,并不需要重新修改和编译Java源码,这符合在⾯向对象
设计中的开闭准则,并且能够提⾼组件系统设计的灵活性,同时,如果结合OSGi的使⽤特性,还可以提⾼应⽤的动态部署能⼒。
7. 在具体使⽤Spring IoC容器的时候,我们可以看到,Spring IoC容器已经是⼀个产品实现。作为产品实现,它对
多种应⽤场景的适配是通过Spring设计的IoC容器系列来实现的,⽐如在某个容器系列中可以看到各种带有不同容器特性的实现,可以读取不同配置信息的各种容器,从不同I/O源读取读取配置信息的各种容器设计,更加⾯向框架的容器应⽤上下⽂的容器设计等。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。