작성
·
1.4K
·
수정됨
답변 1
0
안녕하세요, 슝슝님!! 질문 올려주셔서 감사드립니다!! 🙏
JdbcTemplate 타입의 bean을 찾을 수 없다고 나오시는군요..!!! 😭
제 경험상, 이런 상황에서는 2가지 갈래로 접근을 해야 합니다!!!
실제로는 bean이 잘 등록되었는데 IntelliJ 오류로 찾을 수 없다고 나오는 경우
정말 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)
위 옵션을 설정하시고, IntelliJ 상에서 '빨간줄 (자동 주입을 할 수 없습니다)'이 나오더라도 서버가 잘 실행된다면, 실제로는 주입이 잘 된 것이고, 서버 구동에는 문제가 없다고 할 수 있습니다!
이때 IntelliJ에서 빨간줄이 계속해서 나오는게 불편하시다면, @Suppress("SpringJavaInjectionPointsAutowiringInspection")
와 같은 어노테이션을 추가해 해당 클래스의 빨간줄을 나오지 않게 할 수도 있고, IntelliJ가 여러 버전이 설치되었는지 확인해 1개만을 남겨두거나 최신 버전으로 업데이트해 IntelliJ 오류를 해결할 수도 있습니다!
@Suppress
어노테이션의 경우 외우고 있다기 보다는 빨간줄이 나오는 곳에 커서를 두시고, option + enter (윈도우 : Alt + Enter) 를 활용해 넣어주는 편입니다!
만약 서버가 정말 실행이 되지 않는다면, bean을 진짜 찾지 못한 경우입니다!!
벌써 19강까지 들어주셨으니, 조금 더 자세한 설명을 드려 볼게요!!! 🙏
원래 정상적인 경우라면, 스프링 부트 코드 안에 있는 아래 클래스 (JdbcTemplateConfiguration)에서 JdbcTemplate을 @Bean
으로 등록해주고 있기 때문에 저희가 JdbcTemplate을 바로 가져와 사용할 수 있는건데요!!!
@Bean
에 대한 설명은 21강에 있습니다!!!
bean을 정말 찾지 못한거라면, 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 스크립트가 적용되어 있는것이니 너무 걱정하지 않으셔도 될 것 같습니다!
혹시나 위에서 말씀드린 모든 방법을 사용해보셨는데도 해결이 안되신 경우, (😭...) 코드를 압축해서 보내주시거나 git에 올려주시면 제 컴퓨터에서 다운로드 받아 확인해보도록 하겠습니다!! 🙏🙏(JdbcTemplate을 23강부터 더 사용하지는 않지만, 22강까지 실습해보시는 것도 의미가 있으니까요!!)
감사합니다!! 🙇🙇