☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]스프링_스프링의 특징과 의존성 주입

조반짝 2023. 9. 21. 16:44
728x90
반응형

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());
	
	
	}

}

 

728x90
반응형