의존성 주입
Spring 의존성 주입(Spring DI, Spring Dependency Injection)
- 객체가 필요한 걸 직접 만들지 않고, 스프링이 대신 만들어서 넣어주는 것
- Spring이
@Component,@Service,@Repository,@Configuration이런 애노테이션들을 보고, 자동으로 객체를 만들어서 주입함 - 스프링 방식: 필요한 걸 외부에서 “넣어준다(DI)”
public class MyService {
private final MyRepository repo;
public MyService(MyRepository repo) { // 외부에서 넣어준다!
this.repo = repo;
}
}
- 전통적인 방식: 내가 필요한 걸 직접
new해서 만든다- 테스트하기 어려움
- 재사용성이 떨어짐
public class MyService {
private final MyRepository repo = new MyRepository(); // 직접 만든다
}
정리
| 개념 | 설명 |
|---|---|
| DI란? | 내가 직접 만들지 않고, Spring이 알아서 만들어서 “넣어주는 것” |
| 왜 써? | 코드가 깔끔하고, 테스트도 쉽고, 변경도 쉬움 |
| 무엇을? | Repository, Service, 설정값 등 |
| 어떻게? | 생성자나 @Autowired로 주입 받음 |
| Spring은 어떻게 알아? | @Component, @Service, @Bean 같은 애노테이션 덕분에 알아서 객체를 만들고 주입 |
참고
- ChatGPT-4.0
보완/복습
- 2025.07.15 생성