의존성 주입에 대하여

이진영·2023년 10월 23일
0

Spring

목록 보기
18/18
  1. 패키지 생성 후 빵집 Bakery 클래스와 빵 Bread 클래스를 추가한다.
    두 클래스 모두 @Component, @Data 어노테이션을 추가한다.
    이 때, 빵(Bread) 필요로하는 빵집(Bakery)에 해당 객체(Bread)와 그를 의미하는 @Autowired 어노테이션을 추가한다.

@Component : 스프링에게 해당 클래스가 스프링에서 관리해야 하는 대상임을 표시

@Data : Lombok의 setter를 생성하는 기능과 생성자, toString() 등을 자동으로 생성한다

@Autowired : 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해 달라는 표시, 즉 이를 필요로 한다는 의미


@Component
@Data
public class Bread {

}


@Component
@Data
public class Bakery {

	@Setter(onMethod_= @Autowired)
	private Bread bread;
}

  1. root-context.xml의 namespaces에서 context 항목을 체크한다.

namespaces가 보이지 않을 경우 아래 참조 : https://velog.io/@dlwlsdud39/root-context%EC%97%90%EC%84%9C-namespaces%EA%B0%80-%EB%B3%B4%EC%9D%B4%EC%A7%80-%EC%95%8A%EC%9D%84-%EB%95%8C


  1. roo-context.xml의 source에 context:component-scan태그 사용하여 base-package 속성에 클래스가 들어있는 패키지의 주소를 작성한다.
<context:component-scan base-package="패키지 주소"></context:component-scan>

  1. Beans Graph에 등록된 bakery와 bread, 그리고 클래스 이모티콘 오른쪽 상단에 S가 붙은 것을 확인할 수 있다.

0개의 댓글