首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

IOC的兑现原理

2012-11-15 
IOC的实现原理IoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控

IOC的实现原理

IoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。

IOC也是利用JAVA的反射机制,IOC注重的是代码关系之间的无侵入性,具体来说spring更注意这个特点,就是说要将代码之间的关系隔离到代码外部,在xml文件中进行配置,每当代码结构变更时,双方的代码都不要被改动即可实现移植."如果你需要一个东西,那么不是你自己去取,而是发个指令,有人会送给你","站着别动,我来找你".这两句话什么意思呢,比方说
          public UserServiceImpl{                  UserDao userDao;                  setUserDao(UserDao userDao){                    this.userDao = userDao;                  }             }  
?这个userDao,不需要UserServiceImpl自己去创建这个UserDao对象,由IOC容器主动根据UserServiceImpl提供的setUserDao将UserDao实现的对象赋给userDao,这种用set函数设值的方式有叫做type3,用构造器设值叫做type2,用接口设值成为type1.

那么怎么才能在运行时期把userDao设置上去呢,答案是通过反射机制,在运行时,通过反射反射出UserDao的实现类的对象,并通过反射得到UserServiceImpl的setUserDao方法,将刚才反射得到的UserDao实现类的对象传给setUserDao方法,就完成了设值工作。这些设值的工作是在加载spring文件构造Bean工厂的时候就完成的.所以启动完毕,每个对象中的需要注射的属性是有值的.就是这样的达到容器管理Bean的效果.

热点排行