2014-12-01 11 views
0

생성자에서 spring의 XML 파일을 지정하는 구문을 확인하려고합니다. ClassPathXmlApplicationContext. 구문에 따라 메서드 서명이 아니라 실제 문자열이됩니다.ClassPathXmlApplicationContext에서 spring xml 파일을 지정하는 구문

예를 들어 다음 세 가지가 작동합니다.

ApplicationContext context = new ClassPathXmlApplicationContext("com/anshbansal/alarm/alarm.xml"); 
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:alarm.xml"); 
ApplicationContext context = new ClassPathXmlApplicationContext("alarm.xml"); 

저는 go 인터넷을 통해 Spring 3.1.0 소스 코드도 살펴 보았습니다. 하지만 org.springframework.core.env.AbstractPropertyResolver 봄의 클래스에서 doResolvePlaceholders 메서드 후에 붙어있어. 구체적으로 나는 자리 표시자가 경로로 어떻게 해결되는지 이해할 수 없었다.

xml 파일을 지정하는 문자열의 구문은 누구나 공유 할 수 있습니까?

편집

나는 생성자처럼 xml 파일을 튀어 경로를 지정하는 구문을 의미한다. xml 파일 자체의 구문을 의미하지는 않습니다.

+0

문제가 명확하지이기 때문에, 사람들이 문제를 대답하지 않았다 두렵다 . 실제로 필요한 것은 무엇입니까? spring xml 파일의 경로를 지정하는 구문이나 spring xml 구성 파일 (내용)의 구문을 찾고 있습니다 (예 : http://docs.spring.io/spring-framework/docs). /current/spring-framework-reference/html/xsd-config.html? –

+0

@MichalWilkowski 질문을 업데이트 한 후 @을 잊어 버렸습니다. –

답변

0

좋아, 이제 질문을 이해 :-).

<bean id="mailInviteMessage" class="org.springframework.mail.SimpleMailMessage"> 
    <property name="from" value="${mail.from}"/> 
    <property name="subject" value="${mail.subject}"/> 
</bean> 

는 봄의 XML 퍼팅 : 즉, 다음

<context:property-placeholder location="file:///some/path/file.properties"/> 

이 스프링 XML 내부에서 이러한 문제를 해결하기 : PropertyResolver 즉, 스프링 XML 파일로 환경 값 (또는 등록 정보 파일의 값을) 넣어에만 사용됩니다 표준 규칙 (예 : beans.xml)에서 클래스 경로와 이름 지정이 바람직합니다. 그러나, 그것은 자바 호출에 매개 변수를 넣어 구성

java -Dmy.parameter=/path/to/beans.xml ... 

를 즉 다음 수동으로로드 할 수 있습니다

Context context = new FileSystemXmlApplicationContext(System.getProperty("my.parameter")); 
+0

나는 아직도 약간의 오해가 있다고 생각한다. 제가 주신 세 가지 사례를 살펴 보시겠습니까? 유일한 차이점은 생성자에 대한 인수로 전달 된 String입니다. 이 문자열을 작성하는 다른 허용 된 방법은 무엇인지 알아야합니다. 어쩌면 봄에 특유한 것이 아니기 때문에 혼동을 일으킬 수 있습니다. –