김찬진의 개발 블로그
package springBasic.demo.autowired; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import springBasic.demo.AutoAppConfig; import springBasic.demo.discount.DiscountPolicy; import springBasic.demo.member.Grade; i..
갓영한의 "스프링 핵심원리 기본편 - 다양한 의존관계 주입 방법"에서 참고 공통 가정 - 미관상 인터페이스 MemberRepository, DiscountPolicy, OrderService 생략 - 미관상 구현클래스 MemoryMemberRepository, RateDiscountPolicy 생략 - 미관상 구성정보클래스 AutoAppConfig 생략 1. 생성자 주입 : 파라미터로 들어온 객체들이 모두 컨테이너에 Spring Bean으로 등록되어 있다고 가정 @Component // Spring Bean으로 등록할 것 public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository;..
@RunWith(SpringJUnit4ClassRunner.class) // JUnit 확장기능은 테스트 전에 딱 한번 테스트용 ApplicationContext를 만들고 관리 @ContextConfiguration(location="/applicationContext.xml") // 읽어야 할 구성 정보의 위치 public class AutowiredInstanceTest { // 테스트 클래스 -> 테스트 오브젝트 @Autowired private ApplicationContext ac; // 스프링 애플리케이션 컨텍스트(AnnotationConfigApplicataionContext 등)는 (?) 초기화할 때 자기 자신도 빈으로 등록한다 // 따라서 애플리케이션 컨텍스트에는 ApplicationCo..
수동 의존관계주입 (AppConfig.java) 1. 구성 정보(@Configuration) 작성, 수동 의존관계 표현 (미래형 표현에 주의. 아직 수행되지 않음) - AppConfig클래스에서 @Configuration 어노테이션을 사용함으로써 자신(AppConfig클래스)이 스프링 컨테이너를 만들 때 필요한 구성 정보임을 표시합니다. 아직 스프링 컨테이너는 만들어지지 않았습니다. - @Configuration 어노테이션은 CGLIB라는 바이트코드 조작 라이브러리를 사용하여 AppConfig 클래스를 상속받은 임의의 다른 클래스를 만들 것 입니다. AppConfig 클래스는 싱글턴 패턴의 임의의 클래스로 만들어질 것입니다. 역시 아직 스프링 컨테이너는 만들어지지 않았고 Spring Bean 또한 만들어..