스프링 IoC 컨테이너에서 POJO/빈 등록하기
이 글에서는 POJO 클래스를 만들고 이 클래스의 객체를 스프링 IoC 컨테이너에 등록할 것이다.
먼저 빈으로 등록될 POJO 클래스를 작성해보자. 빈으로 등록되면 싱글톤 객체의 성격을 띄기 때문에 POJO 클래스에 카운트 변수를 두고 테스트 시 하나씩 카운트 해보자.
public class Counter {
private final AtomicInteger counter = new AtomicInteger();
public int getCount() {
return counter.getAndIncrement();
}
}
그 다음으로, Configuration 컴포넌트를 만들어 POJO 클래스를 스프링 IoC 컨테이너가 관리할 수 있도록 하자.
@Configuration
public class CounterConfiguration {
@Bean
public Counter counterGenerator() {
return new Counter();
}
}
마지막으로, 스프링 IoC 컨테이너를 생성하고 POJO 클래스를 가져와 테스트 해보자. counter1과 counter2 객체는 모두 같은 POJO 빈(Counter 객체)을 참조 하고 있으므로 같은 카운트 값을 가진다.
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContex(CounterConfiguration.class);
Counter counter1 = context.getBean(Counter.class);
System.out.println(counter1.getCount()); // 0
Counter counter2 = context.getBean(Counter.class);
System.out.println(counter2.getCount()); // 1
}
Sample code: GitHub
***
참고도서
제목: 스프링5레시피(4판)
지은이: 마틴데니엄, 다니엘 루비오, 조시 롱
펴낸곳: 한빛미디어