복붙노트

[SPRING] Spring XML의 "classpath :"와 "classpath : /"의 차이점은 무엇입니까?

SPRING

Spring XML의 "classpath :"와 "classpath : /"의 차이점은 무엇입니까?

일부 XML XML 구성 파일을 작업 할 때가끔 "classpath : /datasource.xml"과 "classpath : datasource.xml"을 사용하기도합니다. 두 사람 사이에 차이가 있습니까? 아니면 / 선택적 / 묵시적입니까 / 중복입니까?

해결법

  1. ==============================

    1.나는이 두 가지 사이에 어떤 차이도 보이지 않는다. 가장 큰 차이점은 클래스 경로 위치의 상대 경로와 *

    나는이 두 가지 사이에 어떤 차이도 보이지 않는다. 가장 큰 차이점은 클래스 경로 위치의 상대 경로와 *

    다음은 Spring Resources의 발췌 부분이다. 4.7.2.2 절을 보라.

    클래스 경로 * : "classpath * :"접두사는 나머지 위치 경로의 PathMatcher 패턴 (예 : "classpath * : META-INF / * - beans.xml")과 결합 될 수도 있습니다. 이 경우 해결 방법은 매우 간단합니다. ClassLoader.getResources () 호출은 마지막 비 와일드 카드 경로 세그먼트에서 클래스 로더 계층의 모든 일치하는 리소스를 가져온 다음 각 리소스에서 동일한 PathMatcher 해결 전략을 사용합니다 와일드 카드 서브 패스에 사용됩니다.

    즉, "classpath * : *. xml"과 같은 패턴은 jar 파일의 루트에서 파일을 검색하지 않고 확장 된 디렉토리의 루트에서만 파일을 검색합니다. 이것은 JDK의 ClassLoader.getResources () 메소드의 제한에서 기인합니다.이 메소드는 전달 된 빈 문자열 (검색 할 가능성이있는 루트를 나타냄)에 대한 파일 시스템 위치 만 리턴합니다.

  2. from https://stackoverflow.com/questions/13994840/what-is-the-difference-between-classpath-and-classpath-in-spring-xml by cc-by-sa and MIT license