2016-10-10 2 views
1

종속성이 추가 된 Spring Boot 애플리케이션을 개발 중입니다. 이 종속성에는 spring.xml 파일이 있습니다. 나는이 xml 파일을 스캔하고 빈을 생성한다. bean 중 하나가 classpath에서 hibernate.properties를 찾고있다. 내 응용 프로그램의 resources 폴더 아래에이 속성 파일을 추가했습니다. 그러나 나는 여전히 아래에 나열된 예외를 참조하십시오. 내가 누락 된 부분을 알려주시겠습니까?Spring - java.io.FileNotFoundException : 존재하지 않기 때문에 클래스 경로 리소스를 열 수 없습니다.

<util:properties id="HibernateProperties" location="classpath:hibernate.properties"/> 

java.io.FileNotFoundException :로는

+0

'classpath :/hibernate.properties'를 사용해 보셨습니까? –

답변

2

Here some doc from spring

개미 스타일의 패턴이 존재하지 않기 때문에 클래스 패스 리소스는 [hibernate.properties] 열 수 없습니다 classpath : 검색 할 루트 패키지가에 있으면 과 일치하는 리소스를 찾을 수 없습니다.여러 클래스 경로 위치. 입니다 자원 때문에 같은

COM/mycompany/package1/서비스의 context.xml은 하나의 위치에있을 수 있지만, 때 경로 등

클래스 경로로 : COM/mycompany/**/서비스

때문에,

<util:properties id="HibernateProperties" location="classpath*:hibernate.properties"/> 

당신에게 더 나은 기회를 제공 할 수 있습니다 -context.xml.

하지만,

그 클래스 경로 * 참고 : 개미 스타일의 패턴과 결합 할 때 패턴이 시작되기 전에 실제 대상 파일이에 거주하지 않는 만, 적어도 하나의 루트 디렉토리 안정적으로 작동합니다 파일 을 제출하십시오. 즉, classpath * : *. xml과 같은 패턴은 은 jar 파일의 루트에서 파일을 검색하지 않고 확장 된 디렉토리의 루트는 에서만 검색합니다. 이것은 파일 시스템 이 전달 된 빈 문자열 (잠재적 루트가 검색임을 나타냄)을 반환하는 JDK의 ClassLoader.getResources() 메소드의 제한에서 기인합니다.

+1

감사합니다. @kuhajeyan. 외부 jar 파일 내에서 spring.xml을 수정할 수 없습니다. 이 경우에 수행 할 수있는 다른 방법이 있습니까? –

+0

@PunterVicky 나는 classpath에 이미 존재하는 것들을 오버라이드 할 수있는 자신 만의 클래스를 정의 할 수 있어야한다고 생각한다. Check here http://stackoverflow.com/questions/12382070/overriding-property-file-using-spring – kuhajeyan

관련 문제