스프링 개발 환경 구축 02 스프링의 특징과 의존성 주입 2.3 스프링 동작 순서
스프링 동작 순서
① 스프링이 사용할 메모리영역 ( = ApplicationContext 객체) 가 만들어진다.
② root-context.xml의 <context:component-scan> 태그를 통하여 org.zerock.sample 패키지를 스캔한다.
③ @Component 가 있으면 클래스의 인스턴스를 생성한다.
④ Restaurant 클래스에 Chef 객체에 @Autowired 가 있으므로, Chef 객체의 레퍼런스를 Restaurant클래스에 주입한다.
테스트 코드를 통한 확인 (XML 이용)
src/test/java 폴더 내 org.zerock.sample.SampleTests 클래스를 추가한다.
Junit 은 4.10 이상 버전을 사용한다.
@RunWith(SpringJUnit4ClassRunner.class)
@Runwith : 현재 테스트 코드가 스프링을 실행하는 역할을 할 것이라는 것을 표시
@ContextConfiguration("file:src/main/weapp/WEB-INF/spring/root-context.xml")
@ConetxtConfiguration : 지정된 클래스나 문자열을 이용해서 필요한 객체들을 스프링 내에 객체로 등록함
스프링이 실행되면서 어떤 설정 정보를 읽어 들여야 하는지 명시.
@Log4j : Lombok을 이용해서 로그를 기록하는 Logger를 변수로 생성한다. (Log4j 라이브러리와 설정 존재 시)
※ Spring Leagacy Project 로 생성할 경우, Log4j 설정이 완료되 있음.
@Autowired : 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해 달라는 표시
@Test : JUnit에서 테스트 대상을 표시
Run As > Junit Test 를 실행하여 결과를 확인한다.
테스트 코드를 통한 확인 (JAVA 이용)
XML 설정에서 작성했던 @ContextConfiguration 부분을 아래와 같이 변경한다.
@(ContextConfiguration(classes = {rootConfig.class})
어노테이션 정리
Lombok 관련 어노테이션 | Spring 관련 어노테이션 | 테스트 관련 어노테이션 |
@Setter @Data (가장 자주 사용) @Log4j |
@Autowired @Component |
@Runwith @ContextConfiguration @Text |
Lombok 의 속성명 | 의미 |
value | 접근 제한 속성 의미 |
onMethod | setter 메서드의 생성 시 메서드에 추가할 어노테이션을 지정 JDK8 부터 @Setter(onMethod_={@AnnotationsGohere}) |
onParam | setter 메서드의 파라미터에 어노테이션을 사용하는 경우 적용 |
'백엔드 > Spring 책 핵심정리' 카테고리의 다른 글
스프링 개발 환경 구축 02 스프링의 특징과 의존성 주입 2.2 의존성 주입 테스트 (0) | 2021.07.13 |
---|---|
스프링 개발 환경 구축 02 스프링의 특징과 의존성 주입 2.1 스프링 프레임워크의 간략한 역사 (0) | 2021.07.13 |
스프링 개발 환경 구축 01 개발을 위한 준비 1.5 Java Configuration을 하는 경우 (0) | 2021.07.08 |
스프링 개발 환경 구축 01 개발을 위한 준비 1.4 Lombok 라이브러리 설치 (0) | 2021.07.08 |
스프링 개발 환경 구축 01 개발을 위한 준비 1.3 Tomcat을 이용한 프로젝트 실행 확인 (0) | 2021.07.08 |