我所了解的SPRING

学习spring也有一阵子了。好像有点了解了。下面是我所看到的spring。见笑了。 :oops:
老生长谈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的总结,只是本人的一点理解。没有讲到实例。仅仅是概念的东西。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值