1. 의존성
▷ 하나의 객체가 다른 객체가 없이 제대로 된 역할을 수행하지 못하도록 하는 것
▷ 위와 같이 하나의 존재를 더 추가해 주입하는 역할을 합니다.
◎ pom.xml에 추가되는 라이브러리
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.0</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
◎ 예제 클래스 생성
▷ ex00 → org.codehows.sample 패키지 생성 → Restaurant, Chef 클래스 생성
1. Chef 클래스package org.codehows.sample; import org.springframework.stereotype.Component; import lombok.Data; @Component @Data public class Chef { }
2. Restaurant 클래스package org.codehows.sample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import lombok.Data; import lombok.Setter; @Component @Data public class Restaurant { @Setter(onMethod_ = @Autowired) private Chef chef; }
▷ Restaurant 객체는 Chef 타입의 객체를 필요로 한다는 의미입니다.
▷ @Component는 스프링에서 해당 클래스를 관리해야 하는 대상임을 표시하는 것을 스프링에 전달
▷ @Setter는 자동으로 setChef()를 컴파일시 생성
◎ onMethod_ 에러 발생시
▷ sts 프로그램 종료 → 탐색기: c:\user\codepc\.m2 숨김파일 보기 → .m2 폴더 삭제 → sts 다시 실행
▷ 해당 프로젝트 우클릭 → Meaven → Update → 다시 m2가 생기고 에러가 사라지면 오류 해결된 것입니다.
2. XML을 통한 의존성 주입
▷ 스프링은 클래스에서 객체를 생성하고 객체들의 의존성에 대한 처리까지 내부에서 시행
▷ 스프링에서 관리되는 객체를 빈(Bean)이라 하고 XML, Java를 통해 설정할 수 있음
◎ src → main → webapp → WEB-INF → spring → root-context.xml
▷ root-context.xml은 스프링 프레임워크에서 관리해야 하는 객체(Bean)를 설정하는 설정 파일
▷ Namespaces
▷ Source
<?xml version="1.0" encoding="UTF-8"?> ...(생략)... <context:component-scan base-package="org.codehows.sample"> </context:component-scan> </beans>
▷ Beans Graph
위와 같이 객체 2개가 설정된 것을 확인할 수 있습니다.
스프링의 의존성을 이용하는 방법들을 알아보았습니다.
프레임 워크를 이용하려면 객체끼리 직접 연결하는게 아닌 스프링을 이용해 신호를 주고 받는 것 같네요!
확실한 개념은 책을 몇 번 더 읽어봐야겠어요!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~