inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

13강. Spring에서 Database 사용하기

JdbcTemplate 생성자 만드는데 에러나요. JdbcTemplate 타입의 bean을 찾을 수 없다고 하는데 어떻게 해결해야 하나요?

1706

슝슝

작성한 질문수 1

1

JdbcTemplate 생성자 만드는데 에러나요. JdbcTemplate 타입의 bean을 찾을 수 없다고 하는데 어떻게 해결해야 하나요?

스크린샷 2023-01-26 오후 8.26.54.png

강의를 더 보니까 19강에서 설명해주고 계신 build.gradle 때문인거 같은데요.

저는 해당 파일이 비활성화 되어 있는 것 같아요.

위 캡쳐처럼 코드가 알록달록(주황, 보라, 노랑..) 하지 않고, 모두 회색으로 보이는데 그래서 일까요?

스크린샷 2023-01-27 오전 3.01.08.png

spring-boot JPA spring java jpa mysql aws

답변 1

0

최태현

안녕하세요, 슝슝님!! 질문 올려주셔서 감사드립니다!! 🙏

JdbcTemplate 타입의 bean을 찾을 수 없다고 나오시는군요..!!! 😭

 

제 경험상, 이런 상황에서는 2가지 갈래로 접근을 해야 합니다!!!

  1. 실제로는 bean이 잘 등록되었는데 IntelliJ 오류로 찾을 수 없다고 나오는 경우

  2. 정말 bean을 찾지 못한경우

 

현재 상황이 1번인지 2번인지 확인하는 방법은, 서버를 실행시켜보는거에요!!

이때 IntelliJ 설정(Preferences) -> Build, Execution, Deployment -> Build Tools -> Gradle에서
Build and run using: Gradle / Run tests using: Gradle 로 되어 있는지 확인해보시면 좋습니다!! (Gradle을 이용해 서버를 실행할지, IntelliJ를 이용해 서버를 실행할지 선택하는 옵션으로 저는 Gradle을 사용하는 편입니다!! 관련 질문글: https://www.inflearn.com/questions/619558/%EB%B9%8C%EB%93%9C-%ED%88%B4-%EA%B4%80%EB%A0%A8-%EA%B6%81%EA%B8%88%ED%95%B4%EC%9A%94)

image

위 옵션을 설정하시고, IntelliJ 상에서 '빨간줄 (자동 주입을 할 수 없습니다)'이 나오더라도 서버가 잘 실행된다면, 실제로는 주입이 잘 된 것이고, 서버 구동에는 문제가 없다고 할 수 있습니다!

이때 IntelliJ에서 빨간줄이 계속해서 나오는게 불편하시다면, @Suppress("SpringJavaInjectionPointsAutowiringInspection") 와 같은 어노테이션을 추가해 해당 클래스의 빨간줄을 나오지 않게 할 수도 있고, IntelliJ가 여러 버전이 설치되었는지 확인해 1개만을 남겨두거나 최신 버전으로 업데이트해 IntelliJ 오류를 해결할 수도 있습니다!

@Suppress 어노테이션의 경우 외우고 있다기 보다는 빨간줄이 나오는 곳에 커서를 두시고, option + enter (윈도우 : Alt + Enter) 를 활용해 넣어주는 편입니다!image

 

만약 서버가 정말 실행이 되지 않는다면, bean을 진짜 찾지 못한 경우입니다!!

벌써 19강까지 들어주셨으니, 조금 더 자세한 설명을 드려 볼게요!!! 🙏

원래 정상적인 경우라면, 스프링 부트 코드 안에 있는 아래 클래스 (JdbcTemplateConfiguration)에서 JdbcTemplate을 @Bean 으로 등록해주고 있기 때문에 저희가 JdbcTemplate을 바로 가져와 사용할 수 있는건데요!!!

  • @Bean 에 대한 설명은 21강에 있습니다!!!

imagebean을 정말 찾지 못한거라면, JdbcTemplateConfiguration 이 정상적으로 처리되지 않아서 생긴일입니다!!

이에 대해서는 2가지 접근을 해볼 수 있을 것 같아요!!

 

[정말 bean을 찾지 못한 경우 - 1]

build.gradle파일의 dependencies 부분에 아래 코드를 추가해볼 수 있을 것 같습니다!

implementation 'org.springframework.boot:spring-boot-starter-jdbc'

 

[정말 bean을 찾지 못한 경우 - 2]

혹시나 위의 의존성을 추가해보았는데도 해결되지 않으신다면, UserController 의 생성자를 바꿔볼 수 있어요!

// 원래 코드
public UserController(JdbcTemplate jdbcTemplate) {
  this.jdbcTemplate = jdbcTemplate;
}

// 코드 변경!!!
public UserController(DataSource dataSource) {
  this.jdbcTemplate = new JdbcTemplate(dataSource);
}

 

추가로 말씀해주신 build.gradle이 회색인 것은, 저 역시 build.gradle이 정상적으로 로드되었더라도 회색일 때가 있더라고요!!!

IntelliJ 오른쪽에 있는 Gradle > 새로고침 부분이 음영처리 되어 클릭할 수 없으면, 가장 최신 버전의 Gradle 스크립트가 적용되어 있는것이니 너무 걱정하지 않으셔도 될 것 같습니다!

image

혹시나 위에서 말씀드린 모든 방법을 사용해보셨는데도 해결이 안되신 경우, (😭...) 코드를 압축해서 보내주시거나 git에 올려주시면 제 컴퓨터에서 다운로드 받아 확인해보도록 하겠습니다!! 🙏🙏(JdbcTemplate을 23강부터 더 사용하지는 않지만, 22강까지 실습해보시는 것도 의미가 있으니까요!!)

 

감사합니다!! 🙇🙇

패키지 구분에 대해 궁금한게 있습니다

0

25

2

리액트 관련 질문이 있습니다.

0

64

2

스프링부트 버전

0

76

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

59

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

135

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

66

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

79

2

15강. updateUser() 질문

0

56

2

깃허브 질

0

84

2

여기까지 다 끝냈다고 하셨는데

0

79

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

52

1

spring 개념적인 질문

0

71

2

인텔리제이 샘플코드 실행 안됨 오류

0

141

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

86

1

마이그레이션 오류입니다.

0

175

3

Whitelabel Error Page 오류가 났습니다.

0

166

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

60

2

DTO 관련

0

70

2

궁금한게 있습니다!

0

69

2