成都网站建设设计

将想法与焦点和您一起共享

IOC-反转控制/ DI-依赖注入

7.1 IOC (inversion of control) –反转控制

1) 之前我们在学JSP的时候,在CoreServlet中,我们创建xxxDao对象是如何创建的?

专注于为中小企业提供网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业双阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

IXxxDaoxxxDao=newXxxDaoImpl( ) ;

这种写法new了一个XxxDaoImpl类,这样使得CoreServletDao耦合了。

而且IXxxDaoxxxDao=newXxxDaoImpl( ) ;这句代码

如果出现在CoreServlet的某个方法内部,那么xxxDao这个对象的生命周期就是方法的级别。

如果出现在CoreServlet的类中,也就是说xxxDao是一个属性,那么这个xxxDao的生命周期就伴随着CoreServletServlet的生命周期这个级别。

2) 之后我们在applicationContext.xml中定义了这个empServiceempDao,然后通过解析XML和反射机制,产生EmpServiceImpl EmpDaoImpl类的对象,然后存在一个map容器当中(map容器在BeanFactory中)。

因此,我们改变了之前servicedao等实例对象的生命周期,控制权从程序员转移到BeanFactory。所以BeanFactory我们可以称为IOC容器。

7.2 DI - Dependency Injection 依赖注入

1)之前,我们在控制层出现的代码:IEmpServiceempService=newEmpServiceImpl( );那么,控制层和servcie层存在耦合。

2)之后,我们将代码修改成IEmpServiceempService = null; 然后,在配置文件中配置。

以前是主动new出来的,现在是IOC容器给我们new出来后,通过依赖关系给我们注入的。

当然注入可以通过三种方式来注入:1)属性直接赋值2setXxx方法3)构造方法。我们采用的是第一种。


网站名称:IOC-反转控制/ DI-依赖注入
网站地址:http://chengdu.cdxwcx.cn/article/dscgiod.html