반응형

스프링에서의 의존이란 ?

 

- DI (Dependency Injection)의 약자로 '의존 주입'이라고 합니다.

 

- 의존하는 객체를 직접 생성하는 것이 아닌 의존하는 객체를 전달받는 방식입니다 

 

- 기존 의존 객체를 직접 생성하는 방법은 new 연산자를 이용합니다.

 

- 여러 코드에서 사용하는 경우, 직접 생성하지 않고 DI를 이용하면 직접 생성했던 방식 (코드마다 수정이 필요한 방법)에 비하여 의존 주입 대상이 되는 객체에서 생성한 코드의 부분에서만 변경하면 됩니다.

 

- 객체를 생성하고 의존 객체를 주입해 주는 클래스를 따로 작성하는 방법을 조립기라고도 합니다.

 

 

- DI 방식 2가지

 

방법 1. 생성자 방식

 

1
2
3
4
5
6
7
8
9
@Service
public class GogekService {
 
    private GogekDao gogekDao;
 
// 생성자 통해서 의존 객체 주입 받기
    public GogekService(GogekDao gogekDao) {
        this.gogekDao = gogekDao;
    }
 

 

- 생성자 방식은 빈 객체를 생성하는 곳에서 모든 의존 객체가 주입

 

- 이 방식의 단점은 생성자의 파라미터 개수가 많으면 각 인자가 어떤 의존 객체를 정하는지 확인 하려면 생성자의 코드를 확인해야 합니다.

 

방법 2. 세터 메서드 방식

 

1
2
3
4
5
6
7
8
9
10
@Service
public class GogekService {
 
    private GogekDao GogekDao;
 
    @Autowired
    public void setGogekDao(GogekDao gogekDao) {
        this.gogekDao = gogekDao;
    }
}
 

 

- 세터 방식은 세터 메서드 이름을 통해 어떤 의존 객체가 주입되는지 알 수 있다.

 

- 이 방식의 단점은 필요한 의존 객체를 전달하지 않아도 불필요한 객체가 생성되기 때문에 널포인트에러가 발생할 수 있습니다.

반응형

'Spring > 새롭게 얻은 정보들' 카테고리의 다른 글

[Spring] FileUpload 썸네일 확장자 dependency  (0) 2022.04.15
[MaBatis] MyBatis 란?  (0) 2020.12.15
Spring - @Autowired & @Qualifier  (0) 2020.05.04

+ Recent posts