2022/02/06 Resource

김석진·2022년 2월 6일
0

자소서를 쓰고 꾸준히 공부를 해야한다고 생각이된다.. 훙.. 본가(울산)에 내려오면서 많이 힐링을 했던거같다. 한줄일기 끝

Spring Resource

  • java.net.URL의 한계(classpath 내부 접근이나 상대경로 등)를 넘어서기 위해서 스프링에서 추가로 구현
    강사님이 하고 있는 업무에서는 많이 사용하는 부분이 아니지만, 스프링의 내부 동작을 이해하기 위해서 필요한 부분이라고 하셨다.

Resuorce Interface와 그 구현체들

Resource 구현체 목록

Spring 내부 Resource 구현체 중 대표적인 몇가지

UrlResource

java.net.URL을 래핑한 버젼, 다양한 종류(ftp:,file:,http:,등의 prefix로 접근유형 판단)의 Resource에 접근 가능하지만 기본적으로는 http(s)로 원격접근

ClassPathResource

classpath(소스코드를 빌드한결과(기본적으로 target/classes폴더)) 하위의 리소스 접근 시 사용

FileSystemResource

이름과 같이 File을 다루기 위한 리소스 구현체

ServletContextResource,InputStreamResource,ByteArrayResource

Servlet 어플리케이션 루트 하위 파일, InputStream(키보드 입력등), ByteArrayInput(바이트로 들어오는) 스트림을 가져오기 위한 구현체

구현체가 실제로 Spring에서 쓰이는 방식은 아래이다.

Spring ResourceLoader

스프링 프로젝트 내 Resource(파일 등)에 접근할 때 사용하는 기능

  • 기본적으로 applicationContext(스프링의 가장 핵심기능이 집약되어있는 모듈, Spring의 코어라고 생각하면됨)에서 구현이 되어있음
  • 프로젝트 내 파일(주로 classpath 하위 파일)에 접근할 일이 있을 경우 활용
  • 대부분의 사전정의된 파일들은 자동으로 로딩되도록 되어 있으나, 추가로 필요한 파일이 있을때 이 부분 활용 가능

ResourcePatternResolver

스프링 ApplicationContext에서 ResourceLoader를 불러올때 사용하는 Interface
위치 지정자 패턴(classpath 하위냐,file하위냐,http경로이냐)에 따라 자동으로 Resource 로더 구현체를 선택

Application Contexts&Resource Paths

applicationContext(스프링의 핵심설정)을 이루는 설정값을 가져오는 방법들
과거 3.XX 버전에는 이런식으로 xml파일을 읽어와서 applicationContext를 등록을 해줬다.
현재에는 xml로 구성을 잘안하고 어노테이션 기반으로 설정값들을 찾고있다.

스프링에서 classpath 하위의 파일들을 읽어오기 위해서 내부적으로 Resource를 구현했었고 그 Resource를 가져오기위한 ResourceLoader를 구현하고 ResourceLoader는 결국 ApplicationContext에 붙어 있기때문에 applicationContext는 spring프로젝트의 파일들에 접근해서 파일들을 불러와서 Spring Container를 생성해서 띄워줄수 있다 라고 정리해주셨는데.. 이부분은 다시공부를 해야 이해가 될거같다.

profile
주니어 개발자 되고싶어요

0개의 댓글

관련 채용 정보