Di(4)
-
Springboot - Bean Scope(싱글톤, 프로토타입) ?
스프링에서 빈을 생성할 때, 기본 전략은 모든 빈이 싱글톤으로 생성된다. 즉, 어디에서든지 빈을 주입받는 다면 동일한 빈을 주입받는 것을 보장한다. 하지만 필요에 따라서 빈 주입마다 새로운 빈을 생성해야할 필요가 있을 경우도 있다. 이럴 경우에는 빈 생성시 Scope를 prototype으로 주면 빈 주입마다 새로운 인스턴스가 생성되는 것을 보장한다. 하지만 프로토타입 빈을 사용할 경우 주의해야 할 상황이 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @Component public class ABean { @Autowired private BBean b; public void bMethod() { b.print(); } } @Component @Scop..
2019.08.17 -
Spring - Field vs Constructor vs Setter Injection 그리고 순환참조(Circular Reference)
오늘 포스팅할 내용은 필드,생성자,세터 의존주입에 대한 내용이다. 우리가 보통 생각하는 의존주입은 무엇인가? 혹은 우리가 평소에 사용하는 의존주입의 방식은 무엇인가? 한번 생각해보고 각각에 대한 내용을 다루어보자. 1 2 3 4 5 6 7 8 9 10 11 @Component public class ABean { @Autowired private BBean b; public void bMethod() { b.print(); } } cs 보통 위와 같이 필드에 의존주입할 빈을 선언하고 @Autowired를 붙여 빈 주입을 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Component public class ABean { private BBean b; public ABean(BBean..
2019.08.17 -
Spring - ApplicationContext,ApplicationContextAware, 빈이 아닌 객체에 빈주입할때!
Spring - ApplicationContext,ApplicationContextAware, 빈이 아닌 객체에 빈주입할때! @Autuwired,@Inject 등의 어노테이션으로 의존주입을 하기 위해서는 해당 객체가 빈으로 등록되어 있어야만 가능하다.사실 이런 상황은 웹프로그래밍에서는 거의 없겠지만... 빈으로 등록되지 않은 객체에 빈으로 등록된 객체를 의존주입해야할 상황이 있을 수도 있다. 그럴때 사용할수 있는 하나의 UtilClass 이다. 123456789101112131415@Servicepublic class BeanUtils implements ApplicationContextAware { private static ApplicationContext context; @Override publi..
2019.02.25 -
Spring(스프링) 어노테이션 DI방법
스프링에서 어노테이션을 이용한 DI 방법 1.@Autowired,@Resource,@Qualfier 어노테이션1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package com.web.nuri; import static org.hamcrest.CoreMatchers.is;import static org.junit.Assert.assertThat; import javax.annotation.Resource; import org.springframework.test.context.ContextConfiguration;import org.sp..
2018.03.13