DI(2)
-
[Spring] DI(Dependency Injection) 스프링 의존성 주입
의존성 주입에는 대표적으로 두 가지 방식이 있습니다. 필드 주입과 생성자 주입입니다. Spring 4.3부터 생성자가 하나 뿐인 클래스는 생성자 주입을 사용할 때 @Autowired를 생략해줄 수 있습니다. 생성자 주입의 장점은 필드에 @Autowired를 쓸 경우 테스트 클래스에서 의존하고 있는 객체를 주입해주지 않아 NPE가 발생하는 케이스를 방지할 수 있습니다. 그리고 필드 주입은 주입된 인스턴스를 불변으로 만들지 못하지만, 생성자 주입은 가능합니다. 이는 필드 주입은 객체를 생성하고 의존성을 Reflection으로 주입 받기 때문입니다. @Service public class DatabaseAccountService implements AccountService { private final Ris..
2022.05.16 -
[Spring] - DI(Dependency Injection) (복습)
#Spring #DI 지난 주에 이어 Spring 온라인 강의를 이어서 들었다. Spring의 특성을 자동화 이전 단계에서 직접 구현해보며 배우고 있다. 이번 시간엔 DI(Dependency Injection) 의존성 주입에 대해 배웠다. 주요 구현 방법은 객체들을 어떻게 주입시킬 것인가에 대한 것이다. 1. DI란 말그대로 의존성 주입인데, 홀로 존재하지 못하는 의존적이란 특성을 Spring Framework에 여러가지 방법으로 주입하여 객체를 생성해주는 것을 말한다. Spring에서 Container 내에 분포하는 클래스(Beans)는 의존적이다. DI는 Spring 특징 중 하나인 IoC(Inversion of Control) 제어의 역행을 구현하는 하나의 갈래이다. 사용했을 때 장점은 유지보수가 ..
2020.08.31