lombok 설정한 뒤에
chef 클래스 생성
restaurant 클래스 생성
의존, 주입관계를 볼 수있다.
프로그램도 의존, 주입관계 인지했다고 나온다.
테스트코드를 통한 확인
//ex00 프로젝트 클릭 선택 - 우클릭 - Properties - Java Build Path
//- Add Library - JUnit 선택 - Next - JUnit4 선택 - Finish 클릭
//ex00 프로젝트 클릭 선택 - 우클릭 - New - JUnit Test Case
//- Package: 란에 org.zerock.sample 입력
//- Name: 란에 SampleTests 입력 - Next - Finish 클릭
apply 한다
junit test case 생성
//@RunWith 어노테이션은 현재 테스트 코드가 스프링을 실행하는 역할을 할 것이이라는 것을 나타냅니다.
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration 어노테이션은 속성값의 문자열 설정으로 지정된 클래스나 문자열을 이용해서
//필요한 객체들을 스프링 내에 객체로 등록하게 됩니다(이것을 스프링의 빈으로 등록된다고 표현합니다)
//이때, SpringMVC 프로젝트 생성시 자동으로 생성된 root-context.xml 경로 지정을 할 수도 있으며,
//보통 문자열은 'classpath:'나 'file:'을 이용할 수 있습니다.
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
//@Log4j 어노테이션은 Lombok을 이용해서 로그를 기록하는 Logger를 변수로 생성합니다.
//별도의 Logger 객체의 선언이 없이도 Log4j 라이브러리와 설정이 존재한다면 바로 사용이 가능합니다.
@Log4j
@ContextConfiguration : root-context 에 연결 설정 되어있다
객체생성이 된 것을 볼 수 있다
코드에 사용된 어노테이션들
스프링 4.5이후 단일 생성자의 묵시적 자동 주입
chef를 hotel에도 넣어보자
hoteltests junit 생성
package org.zerock.sample;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
//ex00 프로젝트 클릭 선택 - 우클릭 - Properties - Java Build Path
//- Add Library - JUnit 선택 - Next - JUnit4 선택 - Finish 클릭
//ex00 프로젝트 클릭 선택 - 우클릭 - New - JUnit Test Case
//- Package: 란에 org.zerock.sample 입력
//- Name: 란에 SampleTests 입력 - Next - Finish 클릭
//@RunWith 어노테이션은 현재 테스트 코드가 스프링을 실행하는 역할을 할 것이이라는 것을 나타냅니다.
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration 어노테이션은 속성값의 문자열 설정으로 지정된 클래스나 문자열을 이용해서
//필요한 객체들을 스프링 내에 객체로 등록하게 됩니다(이것을 스프링의 빈으로 등록된다고 표현합니다)
//이때, SpringMVC 프로젝트 생성시 자동으로 생성된 root-context.xml 경로 지정을 할 수도 있으며,
//보통 문자열은 'classpath:'나 'file:'을 이용할 수 있습니다.
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
//@Log4j 어노테이션은 Lombok을 이용해서 로그를 기록하는 Logger를 변수로 생성합니다.
//별도의 Logger 객체의 선언이 없이도 Log4j 라이브러리와 설정이 존재한다면 바로 사용이 가능합니다.
@Log4j
public class HotelTests {
// @Autowired는 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해 달라는 표시입니다.
// 이때, 스프링은 정상적으로 주입이 가능하다면 obj(객체) 변수에 Restaurant 타입의
// 객체를 주입하게 됩니다.
@Setter(onMethod_ = {@Autowired})
private SampleHotel hotel;
@Test // @Test는 JUnit에서 테스트 대상을 표시하는 어노테이션입니다.
public void testExist() { // testExist() 메서드 선언
assertNotNull(hotel);
log.info(hotel);
log.info("------------------------------------------");
log.info(hotel.getChef());
}
}
'☭DEVELOPER > #2 웹개발(자바기반 풀스택)' 카테고리의 다른 글
[BACKEND] MyBatis와 스프링에서 페이징 처리 (0) | 2023.10.02 |
---|---|
[BACKEND]오라클 데이터베이스 페이징 처리 (0) | 2023.10.02 |
[BACKEND]중요) MyBatis config 및 mapper XML 파일 셋팅 환경 설정 (0) | 2023.09.20 |
[BACKEND]Maven (0) | 2023.09.19 |
[BACKEND]자동 웹 열기 (0) | 2023.09.18 |