Spring, Springboot
의존 객체 주입 (constructor-arg, property) 개념
jyee
2023. 4. 7. 21:11
728x90
반응형
calc 문제를 복습하다가
applicationContext.xml에 쓰이는 bean 등록할 때 의존객체 주입에서 왜 calcadd는 <constructor-arg>를 쓰는 것이며
calaMul은 <property>를 쓰는건지 이해를 못함
그래서 찾아보니
Setter Injection:<property>태그
Setter메소드를 통해 의존 관계가 있는 Bean을 주입할려면 <property>태그를 사용할 수 있다.
- ref 속성을 사용하면 Bean이름을 이용해 주입할 Bean을 찾는다.
- value 속성은 단순 값 또는 Bean이 아닌 객체를 주입할 때 사용한다.
Constructor Injection : <constructor-arg>태그
Constructor를 통해 의존 관계가 있는 Bean을 주입하려면 <constructor-arg>태그를 사용할 수 있다.
Constructor 주입 방식은 생성자의 파라미터를 이용하기 때문에 한번에 여러 개의 객체를 주입할 수 있다.
- index 속성을 사용하는 방법과 name속성을 이용하는 방법으로 나뉜다.
결론: constructor-args와 property의 차이점
constructor-args: 의존하는 객체를 생성자를 통해 전달(주입)받는다.
property: setter라는 메소드를 이용하여 의존하는 객체를 주입한다.
결국 주입하는 대상이 생성자냐, 메소드냐의 차이입니다.
728x90
반응형