Spring- Component Bean 기본 설정
2020. 8. 27. 19:38ㆍJava/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 |