..


Linki sponsorowane

Rdzeń kontenerowe - kontenery IoC

Kontener IoC jest elementem, który zajmuje instancji Wiosna i skonfigurować obiekty, które znajdują się w to, co nazywa się fasoli.

Ziarna są konfigurowane za pomocą metadanych, które mogą być pliki XML lub adnotacje Java . Domyślnie metadanych jest tylko do odczytu przez XML, w celu umożliwienia korzystania z adnotacji nie ma potrzeby konfigurowania ApplicationContext.

Jak wspomniano wcześniej części IoC i DI jest realizowana przez BeanFactory i ApplicationContext. Jak ApplicationContext jest nadzbiorem BeanFactory, to zalecane, i od teraz będziemy się odnosić tylko all'ApplicationContext.
Istnieją różne rodzaje przewidzianych do wiosny ApplicationContext, w zależności od zastosowania należy opracować. Na przykład, dla samodzielnej aplikacji i jesteśmy ClassPathXmlApplicationContext FileSystemXmlApplicationContext, podczas gdy dla aplikacji korporacyjnych jest WebApplicationContext, który jest tworzony przez słuchacza serlvet.
Wszystkie potrzebne metadane konfiguracji ApplicationContext a następnie musimy wystąpienia pierwszego zapisu pliku xml.
Weźmy przykład, stosując jako odniesienie zarządzania sklepem wideo i zobaczyć, jak zainicjować VideoManager klasy IoC.
Najpierw tworzymy plik przy użyciu metadanych, które nazywamy applicationContext.xml:






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





  



 <- Import i innych metadanych ->



  



 <import resource="otherbeans.xml"/>

	



  



 <- Definicji usługi ->

						

  



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





  



 <- DEFINICJA Video Manager ->



  



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



    



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



  



 </ Bean>



	





 </ Beans>



Ten przykład pokazuje, że jest możliwe połączenie wielu Definicja plików metadanych, jak podano w celu podzielenia fasoli. Obecnie ważne jest, aby zrozumieć składnię metadanych (które zostaną wyjaśnione później), ale potencjał Spring.
Wyeliminuj z konstruktora klasy zainicjować dvdService VideoManager i stworzyć metod pobierających i ustawiających dla dvdService:






 publicznych VideoManager () {



  



 super ();







 }









 GetAvalaibleDvdList <Dvd> publicznych Lista () {



  



 //......



  



 powrót availabeDvdList;







 }









 publicznych setDvdService void (DvdService dvdService) {



  



 this.dvdService dvdService =;







 }









 publicznych getDvdService DvdService () {



  



 powrót dvdService;







 }



Teraz zobaczmy, jak zainicjować IoC:





 / **



 



 * Instanz IoC kontenera



 



 * /







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









 / **



 



 * Pobranie VideoManager klasy



 



 * /







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









 / **



 



 * Drukowanie listy DVD dostępne



 



 * /







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









 do (DVD DVD: avalaibleDvdList) {



  



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







 }



Jak widzieliśmy, pisząc kilka linijek kodu XML i byliśmy w stanie w pełni skonfigurować naszą aplikację.

Zalety korzystania z Spring, które zostały opisane w poprzednich rozdziałach wyróżniają się:

  • Fasola w naszej aplikacji, a VideoManger DvdServiceImpl Nessus nie implementuje interfejsu lub klasy abstrakcyjnej i zależności pojemnikach dall'IoC są nieważne.
  • Jeśli zdecydujesz się zmienić dell'DvdService realizacji, lub dodać inne, wystarczy zmienić plik applicationContext.xml, bez dotykania kodu VideoManager, dzięki zastosowaniu interfejsów.
  • Ponadto dzięki zastosowaniu interfejsów ułatwia tworzenie testów dla naszej aplikacji.

IoC Container

Ponownie odnosząc się do naszego przykładu możemy użyć FileSystemXmlApplicationContext tym:

 



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

 
Zamiast korzystać z WebApplicationContext w aplikacji dla przedsiębiorstw, należy dodać w naszym web.xml (kompletny przykład aplikacji dla przedsiębiorstw, który używa wiosny illutrato będzie ostatnim rozdziale tej instrukcji):





 <- WIOSNA ->







 <context-param>



  



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



  



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







 </ Context-param>









 <listener>



  



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







 </ Listener>



Wiosna Java Przewodnik
E-Learning
Linux (Kurs) Linux (Kurs)
Kompletny przewodnik do systemu open-source. Od 49 €.
PHP (Kurs) PHP (Kurs)
Pełny kurs tworzenia dynamicznych stron internetowych. Od 49 €.
Ruby i Ruby on Rails (Kurs) Ruby i Ruby on Rails (Kurs)
Tworzenie oprogramowania i aplikacji webowych w języku Ruby RoR. Od 39 €.
Linki sponsorowane