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

Eunna Park님의 프로필 이미지
Eunna Park

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

순수 JDBC

안녕하세요

작성

·

375

3

properties 파일에 datasource가 인식이 안되고 unused로 바뀌는데, 뭐가 문제인지 모르겠네요.  이거때문에 datasource가 없다고해요. html 변경시 서버재시작하기 번거로워 devtools도 추가했는데, 이것도 적용 안되네요. 뭔가 그래들 빌드가 안되는건지.. 어쩌는건지. 조언 부탁드립니다.

답변 8

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Eunna Park님^^

주신 메일보고 확인해보았습니다. 제가 직장인이어서 항상 저녁 늦은 시간에 답변을 드리는 점은 이해를 부탁드릴께요^^

1. application.properties에서 다음과 같이 왼쪽이 회색으로 나오는 것

이것은 인텔리J 커뮤니티(무료) 버전이어서 편의 기능이 빠진 것입니다. 실제 동작하는데는 아무런 문제가 없습니다^^!

엔터프라이즈(유료)버전에서는 왼쪽의 프로퍼티를 누르면 관련된 소스코드로 자동으로 이동하지만 이것은 단순히 편의 기능입니다. 동작하는데 영향을 주지 않습니다.

2. 실행을 해보니 No DataSource specified 라는 오류가 발생합니다.

이 문제는 확인을 해보니 주신 코드에서 다음 부분에 문제가 있었습니다.

@Configuration
public class SpringConfig {

private DataSource dataSource; //주입을 안해서 null

@Bean
public MemberService memberService(){
return new MemberService(memberRepository());
}

@Bean
public MemberRepository memberRepository(){

//return new MemoryMemberRepository();

//여기에 dataSource가 없으므로 null 입력
return new JdbcMemberRepository(dataSource);

}
}

메뉴얼처럼 다음과 같이 생성자를 추가하도록 수정하면 됩니다^^

@Configuration
public class SpringConfig {

private DataSource dataSource;

public SpringConfig(DataSource dataSource) {
this.dataSource = dataSource;
}

스프링은 생성자가 딱 1개 있으면 여기에 의존관계를 주입해줍니다. 그러니까 스프링이 만든 DataSource가 입력되는 것이지요.

앞의 코드에는 생성자가 없어서 dataSource에 아무런 값을 넣지 못했습니다.

도움이 되셨길 바래요^^!

1

Eunna Park님의 프로필 이미지
Eunna Park
질문자

아 그렇군요. 감사합니다. 잘 해결되었습니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

네^^ 끝까지 화이팅입니다.

0

감사합니다! 저도 찾아보고 있겠습니다.

0

Eunna Park님의 프로필 이미지
Eunna Park
질문자

아직 해결중인데.. 해결되면 알려드릴게요

0

저도 똑같이 뜨는데 어떻게 해결하셨나요?

0

Eunna Park님의 프로필 이미지
Eunna Park
질문자

네 감사합니다. 메일 보내드리겠습니다. 강의는 너무 유용하고 재미있게 보고 있습니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Eunna Park님

1. 인텔리J 사용버전(유료, 무료)을 알려주세요.

전체 프로젝트를 압축해서 올려주세요.

Eunna Park님의 프로필 이미지
Eunna Park

작성한 질문수

질문하기