SpringConfig에 생성자
330
작성한 질문수 27
JpaMemberRepositotry 실행할 때
SpringConfig.class파일에서 EntityManager em 변수랑 새로운 생성자를 만드는데
왜 이전에 만들어 둔 DataSource를 매개변수로 가진 생성자를 지우지 않고 그대로 두면 오류가 뜨는건지 궁금합니다.
답변 1
1
정답부터 말씀드리면 변수가 초기화 되지 않고 사용되기 때문입니다.
SpringConfig 클래스가 인스턴스로 생성된 후 스프링에 등록(?) 되어 사용되게 됩니다.
생성자는 말그대로 클래스를 인스턴스로 만들기 위한 방법을 명시해요.(이해가 안된다면 자바 문법을 더 공부해 보세요 :)
그런데 SpringConfig 클래스의 생성자가 두 가지 방법이 있는겁니다.
1.dataSource, em을 모두 Autowired 해서 생성하는 방법
2. dataSource만 Autowired 해서 사용하는 방법
2번 방법을 사용해도 SpringConfig 클래스의 인스턴스를 만들 수가 있게 되겠죠.
하지만 2번 방법을 사용하게 되면 내부적으로 em이 필요한데 생성자 주입(Autowired)를 통해 의존성을 주입 받지 못하게 됩니다.(쉽게 말하면.. 객체 생성할 때 new 클래스 이름( ); 이렇게 생성하는 것을 Autowired를 통해 주입 받는 것입니다.)
그렇게 되면 SpringConfig 는 정상적으로 동작하지 못하기 때문에 em을 초기화 하라고 에러가 발생하는 것입니다.
인텔리제이 오류
0
50
1
..
0
113
2
Unused property.....
0
121
2
project JDK is misconfigured
0
165
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
102
2
단위/통합 테스트 버전충돌 문제
0
103
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
256
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
125
2
윈도우 build test오류 질문
1
123
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
112
2
테스트 실행 시 에러 질문
0
316
1
name을 통한 비교와 객체를 통한 비교
0
82
1
빌드 후 libs 없음
1
149
1
윈도우 gradlew.bat 에러
0
186
1
@PostMapping("/members/new")가 동작하지 않습니다
0
98
1
java static class와 kotlin class
0
89
1
스프링 DB연결
0
145
1
소요 시간
0
96
2
ddl.sql에 빨간 밑줄
1
118
2
welcome page 에러
0
201
3
잘 모르겠습니다.
0
173
2
fail을 똑같이 쳤는데 오류가 발생해요
0
173
2
index.html Welcome page
0
137
1
프로젝트 gradle-groovy ?
0
403
1





