스프링 특징 중 하나인 의존성 주입
어노테이션을 이용해서 의존성 테스트를 해볼려고 한다!
@어노테이션은
- 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공
- 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공
- 실행시(런타임시)특정 기능을 실행하도록 정보를 제공
스프링에서 많이 나오는거 같다. 골뱅이의 힘은 대단해
org.zerock.sample 패키지 생성 후 Chef 클래스 생성
@Component
-> 개발자가 직접 작성한 Class를 Bean에 등록하기 위한 어노테이션
(컴퓨터는 @Component를 보면 내가 관리해야되는 클래스구나!)
root-context.xml
패키지를 뒤적거려야하는데 그 과정을 할려면 context:component-scan을 해야한다.
하지만 root-context.xml에 <con을 치면 자동완성이 안나온다.
체크하고 Source로 와서
<context:component-scan base-package="org.zerock.sample"></context:component-scan> 치면
org.zerock.sample에 패키지를 검색한다.
이렇게 하면 Chef에서 나오는 클래스는
스프링에서 관리를 해준다. 관리를 한다는 표시는 클래스파일 1시방향에 S자라고 뜬다!
관리를 한다는 것을 확인할려고 하는데
@Data 어노테이션은
-> @Getter @Setter @RequiredargsConstructor @ToString @EqualsAndHashCode을 한꺼번에 설정해준다
아주 좋은 어노테이션!
이제는 레스토랑 클래스는 만들자
레스토랑 안에는 쉐프가 있고 하니 레스토랑은 틀! 껍데기!
Chef라는 객체를 연결 해줄래요? 그럼 스프링에서 자동으로 넣어 준다. 그게 의존성 주입!
@RunWith -> Junit 내장실행기로 대신 테스트를 실행 모든 프레임워크의 기능을 제공
@ContextConfiguration -> 자동으로 만들어줄 애플리케이션 Context의 설정파일 위치를 지정
@Autowired -> 변수 타입과 일치하는 빈을 찾는다. 타입이 일치하는 빈이 있으면
인스턴스 변수에 주입해준다.
'Back-End > Spring' 카테고리의 다른 글
[Spring] 5. 프로젝트의 구성 (0) | 2021.07.18 |
---|---|
[Spring] 4. MVC구조 중 Controller (0) | 2021.07.17 |
[Spring] 3. MVC구조 기본 (0) | 2021.07.16 |
[Spring] 1. sts3 설치 및 설정 (0) | 2021.07.08 |
[Spring] 0. 첫걸음에 대한 준비 (1) | 2021.07.08 |