..


赞助商链接

核心容器 - IoC容器

在IoC容器是部分利用实例春关怀和配置是摆在它的对象,被称为豆。

豆是通过配置元数据可以是XML文件或Java注释 。 默认情况下,元数据是只读的XML,以便能够使用注释没有必要配置的ApplicationContext。

正如前面提到的IoC和DI部分是通过实施BeanFactory和ApplicationContext中。 由于在ApplicationContext是BeanFactory的超集,它建议,从现在起,我们将只提及all'ApplicationContext。
有提供Spring的ApplicationContext,取决于必须开发各类应用程序。 例如,对于独立的应用,我们ClassPathXmlApplicationContext的FileSystemXmlApplicationContext来,而对企业应用是在WebApplicationContext,它是通过一个se​​rlvet监听器实例。
所有需要的ApplicationContext的配置元数据,然后我们需要实例化一个先写一个XML文件。
让我们举个例子,同样作为经营音像店的参考使用,看看如何初始化的IoC类VideoManager。
首先,我们创建一个文件使用元数据,我们称之为applicationContext.xml中:






 <beans xmlns="http://www.springframework.org/schema/beans" ............>





  



 < - !进口和其他元数据 - >



  



 <import resource="otherbeans.xml"/>

	



  



 < - 服务定义 - >

						

  



 <bean id="dvdService" class="it.mrwebmaster.DvdServiceImpl" scope="singleton" />





  



 < - 视频管理器定义 - >



  



 <bean id="videoManager" class="it.mrwebmaster.VideoManager" scope="prototype">



    



物权name="d​​vdService" ref="dvdService" />



  



 </豆>



	





 </豆>



这个例子说明,它可以整合多个元数据文件中给出的定义,以划分豆。 目前重要的是要了解元数据的语法(这将在后面解释),但春天​​的潜力。
从类的构造函数来初始化消除VideoManager dvdService并创建getter和setter方法​​的dvdService:






公共VideoManager(){



  



超级();







 }









 <DVD> getAvalaibleDvdList公开名单(){



  



 //......



  



 availabeDvdList回报;







 }









公共无效setDvdService(DvdService dvdService){



  



 this.dvdService = dvdService;







 }









公共DvdService getDvdService(){



  



 dvdService回报;







 }



现在让我们看看如何初始化IOC:





 / **



 



 * Instanz的IoC容器



 



 * /







 ApplicationContext中的ApplicationContext ClassPathXmlApplicationContext的=新的(“applicationContext.xml中”);









 / **



 



 *检索类VideoManager



 



 * /







 VideoManager VideoManager =(VideoManager)applicationContext.getBean(“VideoManager”);









 / **



 



 *打印列表中的DVD



 



 * /







名单<DVD> avalaibleDvdList videoManager.getAvalaibleDvdList =();









为(DVD DVD:avalaibleDvdList){



  



 System.out.println(dvd.getTitolo());







 }



正如我们所看到的,写了几行XML代码,我们能够完全配置我们的应用程序。

使用Spring,已在前面的章节中所描述的优点突出:

  • 在我们的应用程序,并VideoManger DvdServiceImpl Nessus的豆子没有实现接口或抽象类,并依赖dall'IoC容器无效。
  • 如果您决定改变执行dell'DvdService,或添加其他,只是改变了文件applicationContext.xml中,没有触及VideoManager代码,由于使用的接口。
  • 另外要感谢的接口使用很容易为我们的应用测试。

IoC Container

再次提到我们的例子中,我们可以使用FileSystemXmlApplicationContext来这样的:

 



新的ApplicationContext的ApplicationContext FileSystemXmlApplicationContext来=(“/路径/ applicationContext.xml中”);

 
而是用在企业应用程序的WebApplicationContext中,你需要在web.xml中添加(一个企业应用程序,使用Spring illutrato将是本指南的最后一章完整的例子):





 < - 弹簧 - >







 <context-param>



  



 <param-name> contextConfigLocation </参数名称>



  



 <param-value>类路径*:applicationContext.xml中</参数值>







 </上下文参数>









的<listener>



  



 <listener-class> org.springframework.web.context.ContextLoaderListener </监听级>







 </监听器>



春天的Java指南
电子学习
Linux操作系统(课程) Linux操作系统(课程)
完整指南开源系统。 从49€。
PHP(课程) PHP(课程)
全部课程用于创建动态Web站点。 从49€。
Ruby和Ruby on Rails的(课程) Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。
赞助商链接