본문 바로가기
IT/spring

스프링 Setter 인젝션(Setter Injection)

by 뉴코딩맨 2023. 6. 14.
스프링 프레임워크에서 의존성 주입(Dependency Injection)을 설정하는 방법 중 하나는 Setter 인젝션입니다. Setter 인젝션은 객체의 필드에 대한 의존성을 설정하는 메서드를 통해 주입하는 방식입니다. 스프링의 Setter 인젝션에 대해 자세히 알아보고, 예시를 통해 설명하겠습니다.
 
 

Setter 인젝션의 장점

Setter 인젝션은 다음과 같은 장점을 가지고 있습니다.
  • 유연한 의존성 관리: Setter 메서드를 통해 의존성을 주입하므로, 객체 생성 이후에도 의존성을 변경할 수 있습니다. 이는 객체 간의 관계를 유연하게 조정할 수 있는 장점을 제공합니다.
  • 선택적 의존성: Setter 인젝션을 사용하면 필요한 의존성이 아닌 경우 해당 메서드를 호출하지 않을 수 있습니다. 이는 선택적으로 의존성을 주입할 수 있는 유용한 기능입니다.
  • 단위 테스트 용이성: Setter 인젝션을 통해 의존성을 주입하면, 테스트 환경에서 쉽게 모의 객체(Mock Object)를 주입할 수 있습니다. 이는 단위 테스트를 보다 쉽고 효율적으로 수행할 수 있는 장점을 제공합니다.
 
 

Setter 인젝션 예시

다음은 Setter 인젝션을 사용하여 의존성을 주입하는 예시입니다.

 

public class MyService {
    private MyRepository myRepository;

    public void setMyRepository(MyRepository myRepository) {
    	this.myRepository = myRepository;
    }

	// ...
}
 
위 예시에서 MyService 클래스는 MyRepository 의존성을 설정하는 setMyRepository 메서드를 가지고 있습니다. 이 메서드를 통해 주입된 MyRepository 객체를 사용하여 비즈니스 로직을 구현할 수 있습니다. 스프링은 해당 클래스의 인스턴스를 생성한 후 setMyRepository 메서드를 호출하여 의존성을 주입합니다.

 

 

스프링에서의 Setter 인젝션

스프링 프레임워크에서 Setter 인젝션을 사용하기 위해서는 다음과 같은 설정이 필요합니다.
  1. @Autowired 어노테이션: Setter 메서드에 @Autowired 어노테이션을 추가하여 스프링이 해당 메서드를 통해 의존성을 주입하도록 지정합니다.
  2. 의존성 설정: 스프링 설정 파일(XML 또는 Java Config)에서 의존성을 설정하고, 스프링 컨테이너가 해당 의존성을 주입할 수 있도록 지정합니다.
 
 

결론

스프링의 Setter 인젝션은 유연한 의존성 관리와 선택적 의존성 주입, 단위 테스트 용이성을 제공하는 강력한 기능입니다. Setter 인젝션을 사용하여 객체 간의 의존성을 명시적으로 설정하고, 스프링의 의존성 주입 기능을 최대한 활용할 수 있습니다.
 

댓글