스프링 도전기 - 46

김치전사·2022년 6월 29일
0

스프링 도전기

목록 보기
46/50

오늘은 @Configuration과 바이트코드 조작에 대해 공부한다

자바 코드를 보면 3번이 호출되어야 하는 것이 맞는데 왜 1번만 호출이 되는 것일까?

ConfigurationSingletonTest에 configurationDeep 테스트 코드 작성

테스트 실행


CGLIB가 붙으면서 내가 만든 클래스가 아닌 다른 클래스가 나온다
스프링이 CGLIB이라는 바이트코드 조작 라이브러리를 사용해서 AppConfig 클래스를 상속받은 임의의 다른 클래스를 생성하고 그것을 스프링 빈으로 등록했다

그 임의의 다른 클래스가 싱글톤이 보장되도록 해준다.
@Configuration을 붙이면 CGLIB을 통해 싱글톤처리가 되지만 @Bean만 등록하면 CGLIB이 안되고 싱글톤 처리가 안된다


참조하는 memberRepository가 다르다는 것이 나타난다

스프링 설정 정보는 항상 @Configuration을 사용해야 한다!!

profile
개인공부 블로그입니다. 상업적 용도 X

0개의 댓글