본문 바로가기
프로그래밍/Spring

[Spring] property 설정, autowire

by 소꿍 2020. 12. 14.

collection 타입의 property 설정

<list> - java.util.List나 배열

<set> - java.util.Set

<map> - java.util.Map

<props> - java.util.Properties

 

  • List 타입의 property 설정

 

  • Set 타입의 property 설정

 

  • Map 타입의 property 설정

 

  • Properties 타입의 property 설정

 

  • 독립형 collection 구현
    각 bean에서 중복 처리되는 속성값을 재사용하기 위한 방법으로, Namespaces의 util 태그를 이용한다.

 


의존 관계 자동 설정(autowire)

의존하는 bean 객체의 타입이나 이름을 이용해 의존 객체를 자동 설정할 수 있는 기능이다.

자동 설정과 직접 설정의 혼합도 가능하다.

 

<bean> 태그의 autowire 속성을 이용한다.

 

 

1.  byName

id값과 일치하는 setter 메소드를 가진 bean에 injection된다.

Cat을 주입받는 Person의 bean 코드 안에 autowire="byName"을 적어주어야 한다.

 

 

2. byType

type과 일치하는 setter 메소드의 인자를 가진 bean에 injection된다.

 

byType 방식의 경우 같은 타입이 2개 이상 존재할 경우 에러가 발생한다.

 

해결방법 1) primary="true"

같은 타입이 여러 개 있을 경우, primary="true"로 표시한 객체가 주입된다.

 

해결방법 2) autowire-candidate="false"

autowire-candidate="false"를 적어주면 해당 객체는 주입되지 않는다.

 

3.  constructor

주입받을 DTO 클래스에 Cat타입의 cat 인자를 받는 생성자를 작성한다.

.xml에 autowire="constructor"를 적어준다.

 

 

4. default-autowire

autowire를 여러 개 적어줘야 할 경우, .xml의 가장 위쪽 태그에 dafault-autowire="byType"을 적어주면
모든 bean에 공통적으로 autowire가 적용된다.

 

댓글