Spring/Spring

[Spring][Core] 2-6. Bean: Autowiring Collaborators

noahkim_ 2023. 10. 14. 22:29

1. Autowiring Collaborators

Autowiring

  • 빈들 사이의 의존성을 자동으로 연결하는 기능입니다.
  • ApplicationContext 내에서 빈들의 종속성을 자동으로 매칭하여 연결해 줍니다.

 

장점

구성의 간소화
  • 직접적으로 프로퍼티나 생성자 인수를 명시적으로 지정할 필요가 줄어듭니다.

 

동적인 구성 업데이트
  • 필요한 의존성이 추가시, 구성을 수정할 필요 없이 자동으로 해당 의존성이 적용됩니다.
  • 코드베이스가 안정적이지 않은 개발 초기 단계에서 특히 유용할 수 있습니다.
  • 코드베이스가 안정화되면 명시적인 와이어링으로 전환하는 옵션도 있습니다.

 

XML 기반 구성에서의 자동와이어링

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="book" class="com.example.Book" />

    <bean id="library" class="com.example.Library" autowire="byName" />
    <bean id="library" class="com.example.Library" autowire="byType" />
    <bean id="library" class="com.example.Library" autowire="constructor" />
</beans>
(default) no
  • 자동와이어링이 발생하지 않습니다.

 

byName
  • 프로퍼티 이름을 기반으로 자동와이어링 합니다.

 

byType
  • 프로퍼티 타입과 일치하는 빈이 존재하면 자동와이어링 합니다.

 

constructor
  • 생성자를 기반으로 한 자동와이어링 입니다.
  • byType과 유사하지만 생성자에 적용됩니다.