inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토비의 스프링 부트 - 이해와 원리

자동 구성 정보 파일 분리

MyAutoConfigImportSelector 에서 생성자로 ClassLoader를 주입받을 수 있는 점

243

Hyun Yoo

작성한 질문수 5

0

안녕하세요! MyAutoConfigImportSelector에 implements DeferredImportSelector만 해주었는데요! 따로 BeanClassLoaderAware 를 같이 implements 해주지 않았는데도, 어떻게 classLoader가 생성자로 주입이 가능한 지 궁금합니다! MyAutoConfigImportSelector가 Bean은 아닌것 같아서요!

spring spring-boot spring-jdbc

답변 1

1

토비

MyAutoConfigImportSelector는 EnableMyAutoConfiguration 애노테이션 정의에서 @Import로 지정되어있습니다. 여기서 @Import에 다음과 갈이 지정되어있어서 MyAutoConfigImportSelector를 스프링 컨테이너를 초기화하는 과정에서 마치 빈 처럼 취급해서 필요한 오브젝트를 주입 받고, 빈 등록 기능을 수행할 수 있도록 해줍니다.

image.png

ImportSelector는 좀 특별하게 취급되는 스프링 구성정보를 동적으로 만드는 컨테이너의 고유한 기능이라고 생각하시면 됩니다. @Import와 ImportSelector 인터페이스의 javadoc을 자세히 읽어보시면 도움이 될 겁니다.

 

ImportSelector 인터페이스의 문서를 읽어보면 다음과 같이 BeanClassLoaderAware 인터페이스를 추가해서 클래스로더를 주입 받도록 만들 수 있다고 되어있고요. ImportSelector 구현 클래스가 만들어져서 동작할 때 필요한 오브젝트를 제공해주는 것이지요. 예전엔 setter 메소드를 가진 인터페이스를 추가로 구현해줬지만, 스프링의 생성자 주입 방식을 따르면 생성자 파라미터로 정의하는 것만으로, 스프링 컨테이너가 만든 클래스로더가 적용이 됩니다.

 

image.png

 

 

 

11강에서 cmd에서 spring shell에 $ init 하면 Fail 메세지

0

74

2

TestRestTemplate 을 통해 테스트 실행시 웹 요청 정보가 콘솔에 표시되지 않습니다.

0

83

1

섹션7. 자동구성 정보파일분리 강의 질문(@MyAutoConfiguration 붙힌 이유)

0

200

2

WebApplicationContext를 DispatcherServlet에 this로 넘기는 것

0

278

2

인프라 빈 구성 정보의 분리에서 EnableMyAutoConfiguration 질문드립니다.

0

209

2

질문드립니다.

0

232

2

spring boot 3.3.7로 학습중입니다.

0

369

2

Serverproperties 객체 생성 후 @Impor 어노테이션 사용 이유 용도

0

162

2

spring start io 에서 이제더이상 2.x버전은 지원하지 않는 것 같습니다.

1

295

2

Springboot 3.2 이상에서 파라미터 추론관련

0

913

4

binding error

0

220

3

Arrays.copyOf 메서드의 타입 세이프

1

155

2

MyOnClassCondition에 있는 matches method의 Invoke 횟수

1

231

3

인용구의 출처가 궁금합니다.

0

259

1

프로퍼티 빈의 후처리기 도입 AnnotationUtils의 사용

0

236

2

SimpleCacheConfiguration과 빈 등록

0

168

2

IntelliJ project jenerator spring initailizr

0

150

1

강의 자료 레퍼지토리에 업로드

0

215

1

강의자료

0

387

1

Hikari 라이브러리가 없으면 오류가 나는거 아닌가요

0

313

2

Tomcat 포트 프로퍼티 미설정시 랜덤 포트 설정 문의

0

471

5

@Import 로 Bean을 등록해야하는 기준이 뭔지 궁금합니다.

0

335

2

application.properties파일내 프로퍼티 이름

0

209

1

강의 공부방법

0

280

1