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

인프런 커뮤니티 질문&답변

우잉님의 프로필 이미지
우잉

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

19강 질문

작성

·

76

·

수정됨

1

스크린샷 2024-08-08 154115.png1. 유저 컨트롤러에서 jdbc를 설정해준적이 없다고 하셨는데 여기서 jdbc클래스설정 이라는게 무슨말인가요?

jdbc에 대한 생성자를 말하는건가오?

  1. 생성자를 설정안해 줘서 탬플릿을 설정안해준거라면 userservice나 userRepositry 모두 다 템플릿에 대해 설정 안해줬는데 저 둘은 스프링빈도 아닌데 어떻게 jdbc템플릿 가져온건가요

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 우잉님! 🙂 좋은 질문 감사드립니다.

하나씩 답변 드려볼게요!!

 

[1. jdbc 설정]

네네 맞습니다! 분명 자바 클래스의 메소드를 사용하기 위해서는 new JdbcTemplate() 처럼 생성자로 인스턴스화를 해줘야 합니다. 하지만 우리는 코드에서 new JdbcTemplate()를 호출한적이 없죠.

또한, DB에 SQL을 날리기 위해서는 URL, 계정 정보 등이 필요하고 비록 우리가 application.yml 파일에 해당 정보를 넣긴 했지만, JdbcTemplate 에 직접적으로 setUrl()과 같은 함수를 호출해 설정값을 넣어주지는 않았습니다.

이런 관점에서 우리가 직접적으로 JdbcTemplate 을 설정해준 적이 없죠.

 

[2.UserService와 UserRepository는 어떻게 JdbcTemplate을 가져오는가]

일단 JdbcTemplate을 우리가 설정했건~ 설정하지 않았건 new UserService(jdbcTemplate) 을 이용해 UserServicejdbcTemplate 을 그대로 전달해주었습니다.

이와 마찬가지로 UserRepositoryJdbcTemplate 을 생성자를 통해 받았고요~

이건 우리가 직접 코드로 해준 부분이죠!

JdbcTemplate 자체는 우리가 직접 코드로 설정하지 않았지만, UserRepositoryUserServiceJdbcTemplate 을 사용하는 것은 직접 코드로 설정해주었습니다.

 

답변이 도움이 되었으면 좋겠습니다.

또 궁금한 점 있으시면 편하게 질문 주세요~ 감사합니다! 🙏

 

우잉님의 프로필 이미지
우잉

작성한 질문수

질문하기