[스프링] 스프링 DI (의존성 주입)

1. DI의 장점

의존성 주입은 애플리케이션의 구성요소들이 서로 느슨하게 결합되도록 하는데, 이를 통해 다음과 같은 장점을 얻을 수 있습니다.

2. DI 방법

스프링 프레임워크에서는 다양한 방법으로 의존성 주입을 지원합니다.

3. 스프링에서의 DI 사용

스프링 프레임워크는 XML, 애노테이션, 자바 설정 클래스 등 다양한 방법으로 의존성 주입을 구성할 수 있습니다. 아래는 XML 설정과 애노테이션을 사용한 의존성 주입의 예시입니다.

XML 설정 예시

<bean id="customerService" class="com.example.CustomerServiceImpl">
    <constructor-arg ref="customerRepository"/>
</bean>

<bean id="customerRepository" class="com.example.CustomerRepositoryImpl"/>

애노테이션을 사용한 설정 예시

@Component
public class CustomerService {
    @Autowired
    private CustomerRepository customerRepository;
    
    // ...
}

의존성 주입을 위한 XML 설정에서는 constructor-arg 요소를 사용하여 의존성을 주입하고, 애노테이션을 사용한 설정에서는 @Autowired 애노테이션을 통해 의존성을 주입합니다.

의존성 주입은 스프링 프레임워크의 핵심적인 기능 중 하나이며, 애플리케이션의 유연성과 유지보수성을 높이는 데 중요한 역할을 합니다.