인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

revi1337's profile image
revi1337

asked

Spring DB Part 1 - Core Principles of Data Access

Automatic resource registration in Spring Boot

AutoConfigure 시 등록되는 Bean 에 대해 질문있습니다.

Written on

·

292

0

안녕하세요 강사님. 덕분에 1년사이에 실력이 늘은것이 체감이 많이 듭니다.

 

다름이 아니라, 해당 강의에서 강사님께서 자동구성때 등록되는 DataSource 는 HikariDataSource 라고 하셨고

TransactionManager 는 사용하는 라이브러리에 따라 달라진다고 하셨습니다.

 

그래서 스프링 부트가 AutoConfigure 할 때 등록되는 Bean 들을 찾아보았습니다.

 

DataSource 는 HikariDataSource 가 잘 잡히는 것 같구요

 

TransactionManger 는 JDBC 를 사용하기때문에 DataSourceTransactionManager 가 잡히는 것을 확인할 수 있습니다.

 

제가 찾은것이 맞을까요?

근데 왜 첫번째 사진에서 HikariDataSource 를 리턴할때 null 을 리턴할까요? ㅠㅠ 이것을 모르겠습니다. 단순히 properties 나 yml 에 spring.datatsource.hikari 를 설정하지 않아서일까요?

 

좋은 하루 보내세요

springmvcspring-jdbc

Answer 1

2

yh님의 프로필 이미지
yh
Instructor

안녕하세요. PrivilegeEscalate님

IDE에서 잘 확인해보시면 실제 객체가 생성된 것을 확인할 수 있습니다.

그런데 HikariDataSource (null)이라고 나와있는 이유는 실제로 null이라는 뜻이 아니라 이 경우 toString()을 통해서 결과를 보여주는데요.

HikariDataSource의 toString()은 다음과 같습니다.

@Override
public String toString()
{
   return "HikariDataSource (" + pool + ")";
}

객체를 생성하는 단계에서는 히카리 내부에서 사용하는 pool이 초기화 되지 않아서 그렇습니다. 이후에 히카리를 사용하는 단계에서 히카리 내부에서 pool의 초기화가 일어납니다.

감사합니다.

revi1337님의 프로필 이미지
revi1337
Questioner

아.. 바보같은 행동을 했군요! 빠른 답변 감사합니다. 자바강의는 잘 듣겠습니다~

revi1337님의 프로필 이미지
revi1337
Questioner

아! 그러네요! 일반적으로 null 이면 그냥 null 로 표기되었던걸로 기억하네요

revi1337's profile image
revi1337

asked

Ask a question