..


스폰서 링크

코어 컨테이너 - IOC 컨테이너

IOC 컨테이너는 스프링을 인스턴스 담당하고 콩이라고 거기에 놓여있는 개체를 구성하는 부분입니다.

콩은 XML 파일 또는 수 있습니다 메타 데이터를 통해 구성된 자바 주석 . 기본적으로 메타 데이터는 주석의 사용은 ApplicationContext를 구성하는 필요없는 활성화에만 XML로 읽습니다.

IOC와 DI의 언급했듯이 이전 부분은 BeanFactory와 ApplicationContext를 통해 구현됩니다. ApplicationContext가 BeanFactory의 Superset이므로, 그것은 권장하고, 지금부터 우리는 all'ApplicationContext를 참조합니다.
응용 프로그램을 개발해야합니다에 따라, 스프링 ApplicationContext에서 제공하는 다양한 종류가 있습니다. 예를 들어, 혼자 애플 리케이션을 서서 엔터 프라이즈 애플 리케이션을위한 serlvet 수신기를 통해 인스턴스 WebApplicationContext,있는 동안 우리는 ClassPathXmlApplicationContext FileSystemXmlApplicationContext 있습니다.
모든 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" />





  



 <-! VIDEO 관리자 정의 ->



  



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



    



 <property name="d​​vdService" ref="dvdService" />



  



 </ 빈>



	





 </ 콩>



이 예제는 비밀을 분할하기 위해서는 주어진 여러 개의 메타 데이터 파일을 정의를 통합하는 가능하다는 것을 보여줍니다. 현재 메타 데이터의 구문 (이 나중에 설명합니다)하지만, 봄의 잠재력을 이해하는 것이 중요합니다.
VideoManager의 dvdService를 초기화하고 dvdService에 대한 getters와 setters을 만들기 위해 클래스 생성자에서 제거합니다 :






 공개 VideoManager () {



  



 슈퍼 ();







 }









 <Dvd>의 ge​​tAvalaibleDvdList 공개 목록 () {



  



 //......



  



 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 = ();









 {: (avalaibleDvdList DVD DVD)에 대한



  



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







 }



우리가 본 것처럼, XML 코드를 몇 줄 작성하고 우리는 충분히 우리의 응용 프로그램을 구성할 수있었습니다.

이전 챕터에서 설명한되었습니다 스프링을 사용의 장점은 눈에 띄는 :

  • 우리의 응용 프로그램 및 VideoManger DvdServiceImpl 네서스의 콩이 인터페이 스나 추상 클래스를 구현하지 않으며, 의존성 dall'IoC 컨테이너는 무효입니다.
  • 당신이 구현 dell'DvdService를 변경하거나, 다른 사람을 추가하기로 결정하면, 단지 인터페이스의 사용 덕분에, VideoManager의 코드를 건드리지 않고, applicationContext.xml 파일을 변경합니다.
  • 또한 인터페이스의 사용 덕분에 우리의 응용 프로그램에 대한 테스트를 만들 수 쉽습니다.

IoC Container

다시 우리가 FileSystemXmlApplicationContext 이것을 사용할 수 예제를 참조 :

 



 ApplicationContext ApplicationContext FileSystemXmlApplicationContext = 새 ( "/ / 경로 applicationContext.xml");

 
대신 엔터 프라이즈 응용 프로그램에있는 WebApplicationContext를 사용하여, 당신은 (봄 illutrato이 가이드의 마지막 챕터 것입니다 사용하는 엔터 프라이즈 응용 프로그램의 완전한 예) 우리의 web.xml에 추가해야합니다 :





 <-! SPRING ->







 <context-param>



  



 <param-name> contextConfigLocation </ PARAM - 이름>



  



 <param-value> 클래스 패스 * : applicationContext.xml </ PARAM 가치>







 </ 컨텍스트 - PARAM>









 <listener>



  



 <listener-class> org.springframework.web.context.ContextLoaderListener </ 리스너 클래스>







 </ 리스너>



봄 자바 안내
E - 학습
리눅스 (코스) 리눅스 (코스)
오픈 소스 시스템에 완료 안내. 49 €에서.
PHP (코스) PHP (코스)
동적 웹 사이트를 만드는 전체 과정. 49 €에서.
레일에 루비와 루비 (코스) 레일에 루비와 루비 (코스)
루비와 RoR과 함께 소프트웨어와 웹 응용 프로그램을 만듭니다. 39 €에서.
스폰서 링크