본문 바로가기
IT/spring

스프링 Set 타입 매핑(Set Type Mapping)

by 뉴코딩맨 2023. 6. 14.
스프링 프레임워크에서는 의존성 주입(Dependency Injection)을 통해 다양한 형태의 의존 객체를 매핑할 수 있습니다. Set 타입 매핑은 그 중 하나로, Set이라는 컬렉션 타입에 속하는 여러 개의 객체를 한번에 주입할 수 있습니다. 스프링에서의 Set 타입 매핑에 대해 자세히 알아보고, 예시를 통해 설명하겠습니다.
 
 

Set 타입 매핑의 사용 예시

Set 타입 매핑은 다음과 같은 상황에서 유용하게 사용될 수 있습니다. 예를 들어, 한 클래스에서 중복되지 않는 여러 개의 의존성을 관리해야 하는 경우 Set을 활용하여 한번에 주입할 수 있습니다.
 
public class MyService {
    private Set<MyRepository> repositories;

    public void setRepositories(Set<MyRepository> repositories) {
    	this.repositories = repositories;
    }

    // ...
}
 
위 예시에서 MyService 클래스는 MyRepository 객체의 Set인 repositories를 필드로 가지고 있습니다. setRepositories 메서드를 통해 Set 타입의 의존성을 주입받을 수 있습니다. 이를 통해 MyService 클래스에서는 중복되지 않는 MyRepository 객체들을 한번에 주입받아 사용할 수 있습니다.
 
 

스프링에서의 Set 타입 매핑

스프링 프레임워크에서는 Set 타입 매핑을 설정하기 위해 다음과 같은 방법을 사용할 수 있습니다.
 
XML 설정
XML 설정 파일에서 Set 타입을 매핑하려면 <set> 요소를 사용합니다. 예를 들어, 아래와 같이 설정할 수 있습니다.
 
<bean id="myService" class="com.example.MyService">
    <property name="repositories">
        <set>
            <ref bean="repository1" />
            <ref bean="repository2" />
            <ref bean="repository3" />
        </set>
    </property>
</bean>
 
위 예시에서는 repositories 프로퍼티에 repository1, repository2, repository3 세 개의 빈을 Set으로 주입하고 있습니다.
 
 

어노테이션 설정

어노테이션을 사용하여 Set 타입 매핑을 설정할 수도 있습니다. @Autowired 어노테이션과 @Qualifier 어노테이션을 함께 사용하여 Set에 속하는 빈을 주입할 수 있습니다. 예를 들어,
 
public class MyService {
    @Autowired
    @Qualifier("repositorySet")
    private Set<MyRepository> repositories;

    // ...
}
 
위 예시에서는 @Autowired와 @Qualifier 어노테이션을 사용하여 repositorySet이라는 Set에 속하는 MyRepository 빈들을 주입받고 있습니다.
 
 

결론

스프링 프레임워크에서의 Set 타입 매핑을 통해 여러 개의 객체를 한번에 주입받고 관리할 수 있습니다. XML 설정이나 어노테이션을 활용하여 Set 타입 매핑을 구성할 수 있으며, 중복되지 않는 의존성 객체들을 효과적으로 관리할 수 있습니다. Set 타입 매핑을 적절히 활용하면 유연하고 확장 가능한 스프링 애플리케이션을 개발할 수 있습니다.
 

댓글