• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.11.28 13:48 작성 조회수 155

0

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

 

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

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

 

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

 

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

 

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

 

제가 찾은것이 맞을까요?

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

 

좋은 하루 보내세요

답변 1

답변을 작성해보세요.

2

안녕하세요. PrivilegeEscalate님

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

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

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

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

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

감사합니다.

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

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