[꼼꼼한 개발자] 꼼코더
08. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일 본문
Spring/코드로 배우는 스프링 웹 프로젝트
08. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일
꼼코더 2022. 12. 26. 20:33반응형
이전글 보기 : 07. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일
✅ 테스트 코드를 통한 확인
- ex00 → src/test/java → 폴더에 org.zerock.sample.SampleTest 클래스 작성
- SampleTest 클래스는 spring-test 모듈을 이용해서 간단하게 스프링을 가동시켜 위에서 설명한 동작들이 일어나게 한다.
- 이때 반드시 Junit은 4.10 이상의 버전을 사용해주도록 하자.
- @Runwith : 현재 테스트 코드가 스프링을 실행하는 역할을 할 것
💁🏻♂️ 결과
🙋🏻♂️ 결과에서 주목해야 하는 부분
- new Restaurant()와 같이 Restaurant 클래스에서 객체를 생성한 적이 없음에도 객체가 생성 됐다.
- 이처럼 스프링은 관리가 필요한 객체(Bean)를 어노테이션 등을 이용해서 객체를 생성하고 관리하는 일종의 ‘컨테이너’나 ‘팩토리의 기능을 가지고 있다.
- Restaurant 클래스의 @Data 어노테이션으로 Lombok을 이용해서 여러 메소드가 만들어졌다.
- Lombok은 자동으로 getter/setter 등을 만들어 주는데 스프링은 생성자 주입 혹은 setter 주입을 이용해서 동작한다.
- Lombok을 통해서 getter/setter 등을 자동으로 생성하고 ‘onMethod’ 속성을 이용해 작성된 setter에 @Auotowired 어노테이션을 추가한다.
- Restaurant 객체의 Chef 인스턴스 변수(맴버 변수)에 Chef 타입의 객체가 주입되어 있다는 점
- 스프링은 @Auotowired와 같은 어노테이션을 이용해서 개발자가 직접 객체들과의 관계를 관리하지 않고, 스프링에서 자동으로 관리하도록 한다.
☕️ Java를 이용하는 경우의 테스트 설정
테스트에서 사용한 @ContextConfiguration 어노테이션은 XML 뿐만 아니라 Java 설정에 이용된다.
위에 SampleTests 클래스의 선언부는 Java 설정을 이용하는 ‘jex00’ 프로젝트에서는 아래와 같이 변경된다
🧹 최종 정리
- spring-test 모듈을 이용해 간단하게 스프링을 가동시켜 테스트 후 로그를 확인할 수 있다.
- 스프링은 관리가 필요한 객체(Bean)를 어노테이션 등을 이용해서 객체를 생성, 관리하는 ‘컨테이너’나 ‘팩토리의 기능을 가지고 있다.
- Lombok을 통해서 getter/setter 등을 자동으로 생성한다.
- 스프링은 @Auotowired와 같은 어노테이션을 이용해서 개발자가 직접 객체들과의 관계를 관리하지 않고, 스프링에서 자동으로 관리하도록 한다.
위 내용은 코드로 배우는 스프링 웹 프로젝트 교재를 참고하여 작성되었습니다.
'Spring > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
10. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링 단일 생성자의 묵시적 자동 주입 (0) | 2022.12.26 |
---|---|
09. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - Lombok 관련, 테스트 관련, 스프링 어노테이션들 (0) | 2022.12.26 |
07. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 스프링이 동작하면서 생기는 일 (0) | 2022.12.26 |
06. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] - 의존성 주입 테스트 (0) | 2022.12.25 |
05. 코드로 배우는 스프링 웹 프로젝트 - [스프링의 특징과 의존성 주입] -스프링의 주요 특징 5가지 (2) | 2022.12.25 |
Comments