2023/03 2

[Spring] Spring 3.0.0 AutoConfigure 사용

문제 발단 스프링을 활용한 오픈 소스 라이브러리 "ReflectiveCipher"를 개발 중 자동 빈 생성과 application.yml 자동 완성을 지원하기 위해 AutoConfigure를 설정 중 문제가 발생했다. 위와 같은 프로젝트 구조로 이루어져 있는 데, auto-configure 모듈이 Spring 라이브러리를 사용하여 자동 빈 생성을 해준다. 스프링에서 편하게 제공해준다고 하여, baeldung과 여러 블로그 글들을 참고하여 resources/META-INF 디렉토리를 생성. 그리고 그 안에 spring.factories를 추가하면 손쉽게 AutoConfigure가 된다고 하여 적용을 해보았지만, example 모듈(스프링 환경)에서 특정 빈을 조회하도록 하였지만, 해당 빈이 존재하지 않는다..

Spring 2023.03.13

[Spring/공부] Custom Interceptor

토이 프로젝트를 진행하다 Spring Security 없이 토큰을 통한 인가를 해야 했다. 이때, 음악(Music)과 회원(User)이라는 엔티티가 다대일(양방향)이고, 회원에서 굳이 음악을 가져올 일이 없는 경우가 종종 있어 지연로딩으로 가져오려 하는 도중 LazyInitializationException 이 발생하여 이에 대해 기록하고자 한다. Interceptor란? Spring MVC에서 요청이 컨트롤러로 위임되기 전, 위임된 후, 뷰 처리 단계에서 특정 로직을 할 수 있는 스프링에서 제공하는 장치 쉽게 설명하자면, "요청에 대한 작업 전/후로 가로채어 특정 로직을 수행하는 역할" 정도로 설명할 수 있다. HandlerInterceptor 인터페이스를 직접 구현하여, 인터셉터를 직접 구현할 수 있..

Spring/공부 2023.03.08