Skip to content

현재 이 synapse 애플리케이션은 마이크로서비스로 운영을 하기에 이 라이브러리와의 결합도가 강하면 안됩니다. 따라서 synapse 애플리케이션 내의 공통적으로 들어가는 기능에 대해서 분리하고(DRY 원칙) 느슨한 결합을 위해 의존성을 최대한 줄이는게 이 라이브러리의 목표입니다.

Notifications You must be signed in to change notification settings

Synapsesa/Synapse-Library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

spring-boot-lazy-init-group

Spring Boot 애플리케이션 내의 특정 기능 그룹(Bean 그룹)의 초기화 시점을 애플리케이션 시작 시점이 아닌, 실제 기능이 호출되는 시점까지 지연 시켜 시작 시간 단축 및 메모리 사용량 절감하는 것이 이 라이브러리의 목표입니다.

핵심 기능

  1. @LazyInitGroup("group-name") 어노테이션 제공
  2. 특정 그룹의 지연 로딩을 활성화/비활성화하는 프로퍼티 제공
  3. Spring Boot 자동 구성을 통해 사용자 설정 최소화
  4. ThreadLocal 기반 초기화 상태 관리 및 자동 정리
  5. 테스트 환경에서의 메모리 누수 방지 및 테스트 간 상태 오염 차단

ThreadLocal 관리 기능

  • 자동 정리: TestExecutionListener를 통해 각 테스트 메서드 실행 후 자동으로 ThreadLocal 상태 정리
  • 상태 모니터링: 현재 초기화된 클래스 개수 및 상태 확인 가능
  • 메모리 안전성: ThreadLocal 메모리 누수 방지를 위한 다중 안전장치 제공
  • 테스트 안정성: 테스트 간 상태 오염 방지로 테스트 격리성 보장

About

현재 이 synapse 애플리케이션은 마이크로서비스로 운영을 하기에 이 라이브러리와의 결합도가 강하면 안됩니다. 따라서 synapse 애플리케이션 내의 공통적으로 들어가는 기능에 대해서 분리하고(DRY 원칙) 느슨한 결합을 위해 의존성을 최대한 줄이는게 이 라이브러리의 목표입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages