의존성이란? new다.
public class TestService{
private final TestRepository testRepository = new MemoryTestRepository();
}
⇒ 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다.
그렇다면 DI란?
다시 말해서, DI는 외부에 있는 의존 대상을 주입하는 것을 말한다.
예시)
public class TestService{
private final TestRepository testRepository = new MemoryTestRepository();
}
public class FieldDI{
private TestDependency testDependency;
//1. 이렇게 생성자에 Autowired 어노테이션을 달아줌으로써 자동으로 스프링부트가 DI를 해줍니다.
@Autowired
public FieldDI(TestDependency testDependency){
this.testDependency = testDependency;
}
}
=> 롬복 도움을 받아서
@Service
@RequiredArgsConstructor
public class FieldDI{
private final TestDependency testDependency;
}