spring-ioc

来源:互联网 发布:java随机生成26个字母 编辑:程序博客网 时间:2024/06/03 05:59

IOC的意义

依赖注入已经是一个老生长谈的问题,这个方面我的理解不是很多,希望大家共同探讨。

我的理解

1. 对象之间是必须有关联的,这样才能构成整个系统
2.对象之间的耦合可以之间通过类耦合,导致了程序很难维护和修改
3.发现了面向接口开发,可以很轻松的用一个类代替另外一个类,只和接口耦合(其实已经很完美了)
4.接口耦合我们也必须在类中手动创建实现类,还是客户端类必须知道具体的实现。
5.使用工厂模式,可以避免客户端类拥有过多的具体实现知识。这个是够代码必须和工厂类进行耦合,必须自己创造大量的工厂类
6.spring 提供一个一系列的工厂集合,代码只用和spring进行耦合
7.spring使用一些技术,自动装填,注解等方式实现代码和spring的低耦合

spring源码分析的方法

springIOC是一个很复杂的实现,之前一直没有找到方法学习全貌(一层一层查看),效果很不是理想,直到最近找到了一个比较好的方式:给大家分享一下,正在学习,后续会补充

工具: IDEA
UML: 随便找了一个(http://www.cnblogs.com/yjmyzz/p/4588386.html),大家看看
思路:
1.先找到点关于spring框架介绍的内容,对主要的接口和框架思路有大致的了解
2.对主要的接口进行阅读(都是英文),作者的注释其实写的还是很清楚的。
3.使用IDEA创建一个.uml图,添加自己看到的各种接口,绘制类图
4.看不懂得,直接F4进入接口再看,看不懂的可以用他的实现类辅助学习。()

IOC关键接口

BeanFactory(bean工厂)

定义了IOC的基本父接口,提供了获得bean的getBean()方法

FactoryBean(工厂bean)

定义了创建bean的getObject()方法

HierarchicalBeanFactory(可层级的BeanFactory)

BeanFactory的子接口,扩展了BeanFactory,定义BeanFactory可以拥有父工厂

AutowireCapableBeanFactory(可配置的BeanFactory)

扩展了BeanFactory,可以对bean进行自动装填和属性赋值,
提供了和其他框架进行集成的功能,可以对已经存在但不受spring管理的bean配置属性

ListableBeanFactory(可列表的BeanFactory)

扩展了BeanFactory,可以获得集合属性,提供了containsBeanDefinition() getBeanNamesForType()

BeanDefinition(Bean定义)

spring抽象的Bean定义,详细描述了bean的各种属性
单例or 原型 className 构造器……
spring通过BeanDefinition创建实例的

下面的文章,我会从各个接口说明我理解的spring,欢迎大家吐槽

参考资料

http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/

0 0
原创粉丝点击