[Spring] 스프링 기초: 의존성 주입 설정

딱지의겨울

·

2021. 4. 6. 13:32

목표: 레스토랑 객체를 만들고 셰프 객체를 주입하자!

- Spring 에서 의존성 주입을 구현할 때: 생성자를 이용한 주입 + setter 메소드(Lombok으로 자동 구현)

 

[01] 예제 클래스 생성

 

- 일반적으로 주입할 객체는 클래스가 아닌 인터페이스로 설계하는 것이 좋음.

- Chef 클래스

- @Data: Lombok의 setter를 생성하는 기능, 생성자, @ToString, @EqualAndHashCode, @Getter/@Setter 등을 자동으로 생성하도록 하는 어노테이션

 

- Restaurant 클래스

- 코드가 의미하는 것: Restaurant 객체는 Chef 타입의 객체를 필요로 한다는 상황

- @Component: 스프랭에게 해당 클래스가 스프링이 관리해야 하는 대상임을 표시하는 어노테이션.

- @Setter: 자동으로 setChef()를 컴파일 할 시 생성함.

- @AutoWired: @Setter에서 사용된 onMethod 속성에 추가하도록.

 

- lombok으로 생성된 클래스에 대한 정보

 

[02] XML을 이용하는 의존성 주입 설정

- 스프링은 클래스에서 객체를 생성하고 객체들의 의존성에 대한 처리 작업까지 내부에서 모든 것이 처리됨.

- 스프링에서 관리되는 객체: 빈 / 빈에 대한 설정: XML, JAVA를 이용해서 처리

- STS의 'Spring Legacy Project' 는 기본적으로 XML을 사용해서 객체를 처리함.

- src > main > webapp> WEB-INF > spring > root-context.xml : 스프링 프레임워크에서 관리해야하는 객체를 설정하는 설정 파일.

- root-context.xml 클릭 > 아래 NameSpaces 탭 클릭 > context 항목 체크

 

- root-context.xml > Sources

 

- root-context.xml > Beans Graph

 

 

[02-2] JAVA 설정을 이용하는 의존성 주입 설정

- root-context.xml 대신 RootConfig 클래스 이용

 

- @ComponentScan 사용

 

 

출처: 코드로 배우는 스프링 웹 프로젝트