inflearn logo
강의

Course

Instructor

Spring Introduction: Learning by Example (Revised Edition)

Dependency Injection

의존성 주입 방법들 장단점

488

youman79539489

23 asked

0

각 DI 방법들 중 저는 개발할때 private final 키워드를 사용해서 @RequiredArgsConstructor로 주입하는데 이게 생성자 주입이고 테스트케이스 때는 필드주입을 사용하는데 제가 이렇게 사용하는게 주변 친구들과 관례때문에 이렇게 사용하는데 이것도 문제죠 알지도 못하면서 일단 쓰는게,, 서론이 너무 길네요 죄송합니다

 

각설하고 제 질문에 대해 말하자면 생성자 주입을 권장하는 이유가 이 final이란 키워드를 사용할 수 있어서 인가요? 보니까 생성자 주입을 제외한 다른 의존성 주입 방법들은 final 키워드를 못쓰는거 보니까 컴파일 레벨때 의존성 주입을 못하는거 같더라구요 이게 맞나요? 만약 아니시라면 final 키워드는 왜 못쓰는건가요?

 

그리고 테스트케이스에서는 왜 생성자주입 말고 필드 주입을 사용하나요? 테스트케이스는 해당 클래스 단일로 실행되고 테스트되어서 상호참조 문제가 일어나지 않기 때문에 필드주입을 사용하는건가요? 

늦은 시간에 무료 강의에 이렇게 장문 질문남겨 죄송합니다. 유튜브에서도 잘 보고있습니다!!

java spring

Answer 1

2

whiteship

음.. 제가 질문을 잘 이해를 못하겠습니다. 테스트건 테스트가 아니건, 생성자 주입을 사용할거냐, 세터 주입을 사용거냐는 해당 의존성이 반드시 필요한 의존성인지 없어도 되는 의존성인지에 따라 달라질 것 같습니다. 반드시 필요한 생성자 주입이 더 적당하죠. 그 의존성 없이는 해당 객체를 못만들테니까, 해당 객체가 반드시 필요로 하는 의존성을 가진 상태로만 객체를 만들 수 있도록 강제할 수 있죠.

jar 안되는 분들 참고하세요

0

359

1

mvnw 오류

0

461

1

./mvnw package 오류

0

419

2

java -jar target/*.jar 명령어 오류..

0

446

2

./mvnw package 오류

0

278

0

./mvnw package 오류

0

210

1

실행 상태에서 변경내용이 바로 반영되나요 ??

0

224

1

도와주세용 ㅜㅜ

0

205

1

./mvnw package 오류

0

318

1

클론 받은 내용과 수업내용이

0

399

1

./mvnw package 오류

0

1143

2

순환참조와 bean 주입에 대한 질문입니다!

0

407

1

jdk 버전이 자꾸 낮다면서 오류가 발생합니다.

0

890

1

age가 화면에 표시가 안됩니다.

0

394

0

에러가 뜨는데 어떻게 해야할지 도저히 모르겠어요

0

1640

1

PetClinicApplication() 함수에서 run 을 하고 싶습니다...

0

519

0

h2와 hsqldb가 어떤차이가 있는건지 궁금합니다

0

1244

0

예제가 이전과 다르네요

0

369

0

메이븐으로 설정했는데 그래들이 같이 보일수 있나요?

0

572

1

LogAspect

0

325

1

구현체가 2개 이상일때 생성자 주입

0

362

1

인스턴스의 생명주기와 제어권

0

306

1

IoC 컨테이너 안에 있는 객체들끼리만 의존성 주입

0

367

1

ExampleRepository exampleRepository = new ExampleRepository()

0

243

1