浏览 1357 次
锁定老帖子 主题:我所了解的SPRING
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-20
老生长谈IOC 概念: IOC有名为Dependency injection ,指的是将对象的依赖关系倒置过来。通过其他方式将调用对象所依赖的被调用对象主动的注入,而不是像原始方式那样在对象里通过new的方式创建。而实现了IOC功能的容器就叫做IOC容器,spring便是这样一种容器。 why: 当我们的项目比较小的时候。spring的确起不了多少作用,一个简单的项目,就没有必要用spring这种“武器”了。但对于中大型项目,那就非常有必要,在大中型项目中。类之间的关系错综复杂。对象状态的维护(单例、多例),对象的创建过程,生命周期的维护,对象依赖关系的组织,将来需求变更所带来的对象的变更,对于一个大型项目而言,这些可是一个项目的最难维护的部分,而这块又是每个项目肯定会遇到的部分,spring的IOC容器就将这些问题统统搞定。是开发人员只需关注自己的业务逻辑。 功能清单: 1.对象的生命周期的维护,对象的创建、销毁。通过该部分功能,我们只需根据自己的业务逻辑添加其接口和实现。在将该实现交给spring管理。而我们业务逻辑需要的对象,只需问spring要,如果有必要。 2.对象依赖关系的维护。spring的IOC容器可以帮我们创建对象,自然就可以帮我们来管理对象之间的依赖关系。创建对象的时候自然会将对象之间的依赖关系注入。 3.对象状态维护。通过spring我们不必编写单例等维护对象存在状态的代码。 4.解耦系统。软件系统的设计目标,就是高内聚、低耦合。通过spring的IOC容器就可以将我们的系统彻底的解耦,我们编写的雷注册到spring后,并不知道谁会去使用。而我们类向spring获取的类也不知道其具体信息,仅仅知道是我们想要的类的子类或实现类或其本身。所有的关系都给spring。也即是所有的类通过spring间接通讯。没有直接的关联。这样便提高系统灵活性,便于后期维护。 优点: 1.对象装配逻辑独立应用程序,提高系统的灵活性。 2.核心逻辑的关系通过XML配置,便于后期维护。降低系统维护的难度。 3.解耦系统。这点就是上面这些东西。 4.低侵入性。spring的IOC是基于java标准。通过setter或构造函数注入,即使我们的bean脱离了spring同样可以使用。只不过需要我们通过另外一种方式实现rpnig的IOC。 5.虽然spring提供了一站试的解决方案,但还是与其他流行框架整合,使用其他框架时候,可以整合spring进来。用于管理系统框架和自己的对象。 灵活使用AOP 概念: AOP就是横向编程。就是在我们原来类功能的前后添加我们其他的功能,而不影响现有的任何功能和代码。以维护系统的稳定性。也就是我们的只对扩展开放,对修改关闭设计模式目的的一种体现,过滤器就是一个例子,添加了我们需要过滤的条件,而原系统不需任何改变。 why: OOAD设计时就要求我们高内聚、低耦合。模块划分清晰,自顶向下,逐层分解。而对于系统的权限控制等模块与其他模块有先后判断执行的关系。其他模块应该只关注于自己的功能实现,而不应该管理权限的实现。又例如数据持久层的事物管理与数据的操作逻辑是两个独立的部分。为了方便和灵活使用配置。AOP就应用在这些方面。 使用场景: 1.权限管理 --- 对系统的公共控制部分 2.事物管理 --- 繁琐代码编写。与其操作具有先后判断关系 3.sesion管理(hibernate) --- 共同代码管理 4.JMS,JNDI,JMX等功能与系统的集成。 --- 系统集成模块。 ........ 优点: 灵活,修改灵活; 替换简单。替换这些功能模块相对简单,不存在耦合关系。 以上只是对学习spring的总结,只是本人的一点理解。没有讲到实例。仅仅是概念的东西。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |