4. 필드 주입

홍준성·2022년 7월 21일
0
package com.example.ex00.dependency;

import org.springframework.stereotype.Component;

import lombok.Data;

@Component // 해당 객체를 Spring에서 관리하도록 설정
@Data
public class Computer {}
package com.example.ex00.dependency;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import lombok.Data;

@Component
@Data
public class Coding {
	
//	필드 주입
//	굉장히 편하게 주입할 수 있으나 순환 참조(무한 루프)시 오류가 발생하지 않기 때문에 StackOverFlow 발생
// final을 붙이면 오류가 남 -> 다른 곳에서 변형 가능 
	@Autowired
	private Computer computer;
	
}
package com.example.ex00.dependency;

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.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DependencyTests {
	@Autowired
	private Coding coding;
	
	@Test
	public void checkDependencyInjection() {
		log.info("-------------------------");
		log.info("coding: " +coding);
		log.info("computer: " + coding.getComputer());
		log.info("-------------------------");
	}
}
profile
준성이의 개발자 공부 velog

0개의 댓글