반응형
- 스프링 컨테이너 주기
//스프링 컨테이너 생성 , parameter가 없는 default 생성자로 생성할경우 load후 refresh를 꼭 해주어야함!!
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
//스프링 컨테이너 설정
ctx.load("classpath:applicationCTX.xml");
// 스프링 컨테이너사용
ctx.refresh();
Student student = ctx.getBean("student", Student.class);
System.out.println("이름 : " + student.getName());
System.out.println("나이 : " + student.getAge()); c
// 스프링 컨테이너 종료
ctx.close();
/* ※ctx.close()의 경우 컨테이너가 소멸 하는 단계이다.
* 컨테이너가 소멸 하면, 빈은 자동으로 소멸 된다. 빈만 소멸하게 하고싶다면,
* destroy() API를 이용하면 된다!
*/
- 스프링 빈 생명주기
1) implemetns InitializingBean , DisposableBean(interface)
굳이 두가지를 다 사용하지 않아도 되지만 초기화될때, 소멸할 때
뭔가를 취해주고(?) 싶을 때 사용하면 된다.
//빈 초기화 과정에서 호출된다. -> ctx.refresh();
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("afterPropertiesSet()");
}
//빈 소멸 과정에서 생성 된다. -> ctx.close();
@Override
public void destroy() throws Exception {
System.out.println("destroy()");
}
2) @PostConstruct, @PreDestroy 어노테이션을 사용
//빈 초기화 과정에서 호출된다. -> ctx.refresh();
@PostConstruct
public void initMethod() {
System.out.println("initMethod()");
}
//빈 소멸 과정에서 생성 된다. -> ctx.close();
@PreDestroy
public void destroyMethod() {
System.out.println("destroyMethod()");
}
- 스프링 빈 범위(scope)
스프링 컨테이너가 생성되고, 스프링 빈이 생성 될 때, 생성된 스프링 빈은 scope를 가지고 있다.
범위란 쉽게 생각해서 해당하는 객체가 어디까지 영향을 미치는지 결정하는 것이라고 생각하면 된다.
스프링은 기본적으로 싱글톤 객체로 관리된다.(default가 singleton)
반응형
'Framework > Spring Framework' 카테고리의 다른 글
[Spring Framework] 외부파일을 이용한 설정 (0) | 2018.07.25 |
---|---|
[Spring Framework] 싱글톤(Singleton)의 개념 (0) | 2018.07.25 |
[Spring Framework] DI 활용 (0) | 2018.07.24 |
[Spring Framework] DI(Dependency Injection) (0) | 2018.07.24 |
[Spring Framework] 스프링이란? (0) | 2018.07.24 |
댓글