본문 바로가기
Spring, Springboot

의존 객체 주입 (constructor-arg, property) 개념

by jyee 2023. 4. 7.
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
반응형

'Spring, Springboot' 카테고리의 다른 글

5월 8일자 수업 Spring Boot 스프링 JPA <chapter03 >  (0) 2023.05.08
5월 3일자 수업 react  (0) 2023.05.04
스프링 calc계산  (0) 2023.04.07
Spring 설치 이후 환경설정  (0) 2023.04.05
[Spring] 설치하기  (0) 2023.04.04