작성
·
261
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의 초기화가 일어납니다.
감사합니다.
아.. 바보같은 행동을 했군요! 빠른 답변 감사합니다. 자바강의는 잘 듣겠습니다~