스프링을 사용하다보면 webapps 폴더안에 파일들에 대해 접근해야할 필요가 있다.
Servletcontext 를 이용한 접근 방법이 있으나 이방법은 Servletcontext 에 의존적이라는 단점이 있다.
특정 동작만을 위한 모듈을 덧붙일 경우 다른 방법이 필요한데 스프링에서는 이방법 또한 제공한다. 바로 코드로 보자
import java.io.IOException; import java.io.InputStream; import org.springframework.context.ResourceLoaderAware; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; public class ArbitraryResourceLoader implements ResourceLoaderAware { private ResourceLoader resourceLoader; public void test() throws IOException { Resource resource = resourceLoader.getResource("file:webapps/config.txt"); InputStream is = resource.getInputStream(); try{ int i=0; while((i=is.read())!=-1) { char c=(char)i; System.out.print(c); } }catch(IOException e){ e.printStackTrace(); }finally{ if(is!=null) is.close(); } } @Override public void setResourceLoader( ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } }
그리고 빈설정 파일에 아래와 같이 설정해준다 class 경로 같은 경우는 자기자신의 프로젝트에 따라 바뀔것이다
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <bean id="arbitraryResourceLoader" class="org.test.sample.ArbitraryResourceLoader"/> </beans>
JavaConfig로도 쉽게 응용할수 있으리라 생각한다.
'Java > Spring' 카테고리의 다른 글
Spring 에서 런타임 환경에서 프로퍼티 값을 변경하는 방법 (0) | 2021.12.18 |
---|---|
스프링 프로파일 (Spring profile) 을 통해 환경별로 다른 설정을 해보자 (0) | 2016.11.24 |
스프링 Properties 파일을 이용해서 설정하기 (0) | 2016.11.18 |
Mybatis + Myabtis Spring 사용시 마이바티스 설정파일 사용법 (0) | 2016.11.14 |
Tomcat 으로 원격 배포와 서버 원격디버깅 (0) | 2016.07.18 |