입력 기능
으로 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); }