..


Sponsorerede links

Core Container - IOC beholdere

IOC container er den del, der tager sig af instantiere Forår og konfigurere de objekter, der er placeret i det, som kaldes bønner.

Bønnerne er konfigureret ved hjælp af metadata, der kan XML-filer eller Java anmærkninger . Som standard er metadata kun læses af XML, for at aktivere brugen af ​​annotationer er ingen grund til at konfigurere ApplicationContext.

Som nævnt tidligere en del af IOC, og DI er implementeret gennem BeanFactory og ApplicationContext. Da ApplicationContext er et supersæt af BeanFactory, anbefales det, og fra nu af vil vi kun referere all'ApplicationContext.
Der er forskellige typer leveres af foråret ApplicationContext, afhængigt af programmet skal udvikles. For eksempel står for enkeltstående applikationer og vi er ClassPathXmlApplicationContext FileSystemXmlApplicationContext, mens det for virksomhedsapplikationer er WebApplicationContext, som er instantieres gennem en serlvet lytteren.
Alle har brug for ApplicationContext konfiguration metadata og så er vi nødt til at instantiere en første til at skrive en XML-fil.
Lad os tage et eksempel, igen med som reference styre en videobutik og se hvordan du initialisere IOC klassen VideoManager.
Først skal vi oprette en fil ved hjælp af metadata, som vi kalder applicationContext.xml:






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





  



 <-! Import og andre metadata ->



  



 <import resource="otherbeans.xml"/>

	



  



 <-! DEFINITION AF SERVICE ->

						

  



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





  



 <-! VIDEO MANAGER DEFINITION ->



  



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



    



 <property name="dvdService" ref="dvdService" />



  



 </ Bean>



	





 </ Bønner>



Dette eksempel viser, at det er muligt at integrere flere metadata filer Definition, som gives for at opdele bønner. I øjeblikket er det vigtigt at forstå syntaksen af ​​metadata (som vil blive forklaret senere), men potentialet i foråret.
Eliminer fra klassen constructor at initialisere VideoManager dvdService og oprette getters og settere til dvdService:






 offentlige VideoManager () {



  



 super ();







 }









 <Dvd> GetAvalaibleDvdList offentlig liste () {



  



 //......



  



 availabeDvdList vende tilbage;







 }









 public void setDvdService (DvdService dvdService) {



  



 this.dvdService = dvdService;







 }









 offentlige DvdService getDvdService () {



  



 dvdService vende tilbage;







 }



Lad os nu se, hvordan du initialisere IOC:





 / **



 



 * Instanz IOC container



 



 * /







 ApplicationContext ApplicationContext ClassPathXmlApplicationContext = new ("applicationContext.xml");









 / **



 



 * Hent klassen VideoManager



 



 * /







 VideoManager VideoManager = (VideoManager) applicationContext.getBean ("VideoManager");









 / **



 



 * Udskriv listen af ​​dvd'er til rådighed



 



 * /







 Liste <Dvd> avalaibleDvdList videoManager.getAvalaibleDvdList = ();









 for (DVD DVD: avalaibleDvdList) {



  



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







 }



Som vi har set, at skrive et par linjer af XML-kode og vi var i stand til fuldt ud at konfigurere vores ansøgning.

Fordelene ved at bruge foråret, som er blevet beskrevet i tidligere kapitler skiller sig ud:

  • Bønnerne i vores program, og VideoManger DvdServiceImpl Nessus ikke gennemfører interface eller abstrakt klasse, og afhængigheder dall'IoC containere er ugyldige.
  • Hvis du beslutter at ændre gennemførelsen dell'DvdService, eller tilføje flere, bare ændre filen applicationContext.xml, uden at røre koden for VideoManager, takket være brugen af ​​grænseflader.
  • Også takket være brugen af ​​grænseflader er nemt at lave test for vores ansøgning.

IoC Container

Igen med henvisning til vores eksempel kunne vi bruge de FileSystemXmlApplicationContext dette:

 



 ApplicationContext ApplicationContext FileSystemXmlApplicationContext = new ("/ sti / applicationContext.xml");

 
I stedet for at bruge WebApplicationContext i en virksomhed program, skal du tilføje i vores web.xml (den komplet eksempel på en virksomhed program, der bruger foråret illutrato vil være det sidste kapitel i denne vejledning):





 <-! SPRING ->







 <context-param>



  



 <param-name> contextConfigLocation </ param-name>



  



 <param-value> classpath *: applicationContext.xml </ param-value>







 </ Kontekst-p>









 <listener>



  



 <listener-class> org.springframework.web.context.ContextLoaderListener </ lytteren-class>







 </ Listener>



Spring Java Guide
E-Learning
Linux (Kursus) Linux (Kursus)
Komplet guide til open source-system. Fra 49 €.
PHP (Kursus) PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €.
Ruby og Ruby on Rails (Kursus) Ruby og Ruby on Rails (Kursus)
Opret software og web-applikationer med Ruby og RoR. Fra 39 €.
Sponsorerede links