ClassPathXmlApplicationContext 소스 코드 분석

ClassPathXmlApplicationContext 소스 해석

입력 기능

으로 ClassPathXmlApplicationContext부모 클래스 생성자 시작 AbstractApplicationContext기능 새로 고침 방법을

ClassPathXmlApplicationContext출처 :

org.springframework.context.support 패키지, 수입 org.springframework.beans.BeansException을; 수입 org.springframework.context.ApplicationContext; 수입 org.springframework.core.io.ClassPathResource; 수입 org.springframework.core.io.Resource; 수입 org.springframework.lang.Nullable; 수입 org.springframework.util.Assert는; Public 클래스 ClassPathXmlApplicationContext는 AbstractXmlApplicationContext {연장    @Nullable    전용 리소스 []를 configResources;    공공 ClassPathXmlApplicationContext를 () {    }    공개 ClassPathXmlApplicationContext (ApplicationContext의 상위) {        슈퍼 (부모);    }



















  공개 ClassPathXmlApplicationContext (문자열 configLocation)는 BeansException {발생
      이 (새로운 String [] {} configLocation 진실 (의 ApplicationContext)는 null);
  }   공공 ClassPathXmlApplicationContext (문자열 ... configLocations)이 발생 BeansException {       이 (configLocations 사실, (ApplicationContext를) 널 (null));   }   공개 ClassPathXmlApplicationContext (문자열 [] configLocations는 @Nullable ApplicationContext의 부모) BeansException {발생       이 (configLocations 사실, 부모);   }   공공 ClassPathXmlApplicationContext (문자열 [] configLocations, 부울 새로 고침) BeansException를 {던졌습니다










      이 (configLocations, 새로 고침, (ApplicationContext를) 널 (null));
  }   공개 ClassPathXmlApplicationContext는 (문자열 [] configLocations은 부울 리프레시는 @Nullable ApplicationContext의 부모) BeansException {발생       초 (부모);       this.setConfigLocations (configLocations);       경우 (새로 고침) {           this.refresh ();       }   }   공개 ClassPathXmlApplicationContext (문자열 경로를 clazz 클래스는 <?>) BeansException {발생       이 (새로운 String [] {경로}를 clazz)를;   }   공개 ClassPathXmlApplicationContext (문자열 [] 경로 클래스 <?>를 clazz)는 {BeansException을 던진다















      이 (경로를 clazz (ApplicationContext는) NULL);
  }   공개 ClassPathXmlApplicationContext (<?> 문자열 [] 경로, 클래스를 clazz는 @Nullable ApplicationContext의 부모) BeansException {발생       초 (부모);       Assert.notNull (경로, "경로 배열이 null이 아니어야합니다");       Assert.notNull (clazz에, "클래스 인수가 null이 아니어야합니다");       this.configResources = 새 자원 [paths.length]       (I = 0 INT; I <paths.length; I ++) {위한           this.configResources [I] = ClassPathResource가 새로운 (경로 [I]를 clazz);       }       ) (this.refresh;   }   @Nullable는   () {리소스 [] getConfigResources 보호
















      this.configResources를 반환;
  }
}

ClassPathXmlApplicationContext(String configLocation) XML 설정 파일을 통해 특정 구성 요소를 지정하는 문자열 유형 XML 파일의 이름을 전달,이 일반적인 방법을 사용하면 콩 식물, DefaultSingletonBeanRegistry의지도 즉 세트를 인스턴스화하는

ClassPathXmlApplicationContext(String... configLocations):그것은 봄, 콩 식물에 장착 들어오는 XML의 복수 될 수있다

public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh) :들어오는 문자열 배열

@Test 
  공개 무효 TestXmlBean () {
      ClassPathXmlApplicationContext 컨텍스트 = 새로운 ClassPathXmlApplicationContext ( "클래스 경로 xmlRegBean.xml");
      동물 고양이 = context.getBean ( "고양이", Cat.class);
      cat.getName ();
  }   @Test   공개 무효 TestMultiXml () {           ClassPathXmlApplicationContext 컨텍스트 = 새로운 ClassPathXmlApplicationContext ( "클래스 경로 xmlRegBean.xml", "클래스 경로 xmlRegBean2.xml");           동물 고양이 = context.getBean ( "고양이", Cat.class);           cat.getName ();           에서 System.out.println (고양이);           동물 CAT2 = context.getBean ( "CAT2"Cat.class);           cat2.getName ();










  } @Test   공개 무효 TestArrayXml () {       문자열 [] = {arrXml "클래스 경로 xmlRegBean.xml", "클래스 경로 xmlRegBean2.xml"};       ClassPathXmlApplicationContext 컨텍스트 새로운 ClassPathXmlApplicationContext (사실 arrXml를) =;       동물 고양이 = context.getBean ( "고양이", Cat.class);       cat.getName ();       에서 System.out.println (고양이);       동물 CAT2 = context.getBean ( "CAT2"Cat.class);       cat2.getName ();       에서 System.out.println (CAT2);   }
   










 

추천

출처www.cnblogs.com/nicklin/p/12095885.html