진짜 개발자
본문 바로가기

FrameWork/Spring

Spring - IoC 컨테이너의 기능 - 7 (Resource 추상화 - ResourceLoader)

728x90
Spring의 Resource 추상화

Resource 추상화

Resource 추상화라고 하니까 뭔가 말이 거창하고 어려워 보이네요. 간단하게 의미를 정의해보겠습니다. Resource 추상화는 java.net.URL을 추상화 한 것 입니다. 이게 무슨 뜻이죠.. 우선 java.net.URL이 무엇인지를 알아보아야 할 것 같습니다.

 

 

java.net.URL 이란

우선 URL은 인터넷상의 주소를 표현하는 방법을 의미합니다. URL 클래스는 웹 상에 존재하는 자원에 접근할 때 사용하는 클래스입니다.


URL 클래스를 사용하면 위와 같이 간단히 웹상의 자원을 가져올 수 있습니다.

 

 

이유

java.net.URL을 왜 추상화 했을까요?

 

기존 java.net.URL 클래스에는 classpath를 기준으로 resource를 가져오는 방법이 없었다고 합니다. 하지만 classpath, url 을 통해 가져오는 방법 둘다 Resource를 가져오는 방법이므로, Spring에서 이것을 추상화해 통일을 시켰다고 합니다.

 

 

classpath에서 Resource 가져오기

우선 resources디렉토리 하위에 test.txt를 만듭니다.

 

위와 같이 코드를 작성합니다. 주목할점은 ResourceLoader에 의해서 간단히 classpath를 통해서 Resource를 가져올 수 있다는 것입니다.

 

*ApplicationContext 보다는 명시적인 인터페이스인 ResourceLoader를 사용하는것이 더욱 좋다고 합니다.