Spring- Component Bean 기본 설정

2020. 8. 27. 19:38Java/Spring

반응형

Component Bean 에서도 앞서 적용했던 설정들을 @Lazy,@Scope,@PostConstruct,@PreDestroy 등의 어노테이션을 통해 적용 가능하다.

 

1. @Lazy

@Lazy 어노테이션은 해당 클래스를 불러 올 시 자동으로 빈객체가 생성 되는 것을 막고 수동 생성으로만 빈 객체가 생성된다.

 

@Component
@Lazy
public class TestBean1 {

}

2. @Scope

빈 객체는 기본적으로 싱글톤 생성이다. 이런 빈 객체를 @Scope 어노테이션을 통해 prototype으로 설정 가능하다.

@Component
@Scope("prototype")
public class TestBean1 {

	
}

3. @PostConstruct, @PreDestroy

@PostConstruct 어노테이션은 빈 객체 생성 후 생성자 실행 뒤 실행되는 메서드를 설정한다.

@PreDestroy 어노테이션은 빈 객체가 close되기 직전에 실행되는 메서드를 설정한다.

@Component
public class TestBean1 {

	public TestBean1() {
		System.out.println("TestBean1 생성자");
	}
	@PostConstruct
	public void init() {
		System.out.println("init");
	}
	
	@PreDestroy
	public void destroy() {
		System.out.println("destroy");
	}
}

 

public class MainClass {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(BeanConfigClass.class);
		
		TestBean1 t1 = ctx.getBean(TestBean1.class);
		System.out.println("t1=>"+t1);
		TestBean1 t2 = ctx.getBean(TestBean1.class);
		System.out.println("t1=>"+t2);
		
		ctx.close();
	}
}

 

@Component
@Lazy
@Scope("prototype")
public class TestBean1 {

	public TestBean1() {
		System.out.println("TestBean1 생성자");
	}
	@PostConstruct
	public void init() {
		System.out.println("init");
	}
	
	@PreDestroy
	public void destroy() {
		System.out.println("destroy");
	}
}

 

반응형

'Java > Spring' 카테고리의 다른 글

Spring - AOP  (0) 2020.08.29
Spring - Component 자동주입  (0) 2020.08.27
Spring - Component  (0) 2020.08.26
Spring - JSR-250 어노테이션  (0) 2020.08.25
Spring - Annotation을 통한 Bean 설정  (0) 2020.08.24