#spring-core
글
-
Spring 소스 파헤치기 13: ResolvableType과 MergedAnnotations — 타입과 어노테이션을 읽는 법
Spring이 List<String>의 String을 어떻게 알아내는지(ResolvableType), 어노테이션 위에 붙은 어노테이션과 @AliasFor를 어떻게 하나로 합쳐 읽는지(MergedAnnotations), 클래스를 로딩하지 않고 .class 파일에서 어떻게 읽는지(MetadataReader)를 Spring을 처음 보는 사람 기준으로 실제 소스와 예제로 확인합니다.
-
Spring 소스 파헤치기 14: 타입 변환과 BeanWrapper — 문자열이 객체의 속성이 되기까지
설정 파일의 문자열 "8080"이 빈의 int 필드에 들어가기까지 누가 무엇을 하는지 소스로 따라갑니다. PropertyEditor와 ConversionService가 왜 둘 다 있고 어느 쪽을 먼저 쓰는지, BeanWrapper가 "address.city" 같은 경로를 어떻게 따라 내려가는지, 컨테이너가 이 둘을 어디서 쓰는지를 Spring을 처음 보는 사람 기준으로 정리합니다.
-
Spring 소스 파헤치기 16: 유틸리티와 AOT — 모두가 쓰는 도구 상자와 미리 계산해 두기
Spring의 모든 모듈이 가져다 쓰는 spring-core의 유틸리티(Assert, ClassUtils, ReflectionUtils, 맵 세 가지, OrderComparator)가 왜 따로 있고 어디서 쓰이며 어디가 함정인지, 그리고 Spring 6부터 들어온 AOT가 컨테이너를 빌드 시점에 "미리 계산"해 Java 소스와 RuntimeHints로 바꾸는 흐름을 실제 소스와 실행 예제로 확인합니다.