앞서 살펴본 내용과 같다. 스프링 컨테이너를 생성 할 때 설정 경로를 같이 넣어 주면 생성과 설정을 동시에 할 수 있다. 

설정을 따로 할시에는 ctx.refresh(); 를 꼭 해야한다.


이제 빈의 생명 주기에 대해서 알아보겠다. 빈을 생성하고 종료할 때 어떤 작업을 하고 싶다면 이렇게 사용하면 된다.

첫 번째는 implements를 이용한 방법이다. 처음 클래스를 만들 때 afterPropertiesSet과 destroy를 implement 한다. 그런 후 자신이 원하는 것을 밑에 기재한다.


두 번째 방법은 어노테이션을 이용한 방법이다. implement 하지않고 @PostConstruct 와 @PreDestroy를 어노테이션해서 간단히 쓰면 된다.


=====================================================================================================================

다음은 스프링 빈 범위(scope) 에 대해서 알아보자

 Spring에서는 Bean관리는 기본적으로 싱글톤으로 관리를 한다

하지만 필요에 따라 싱글톤이 아닌 경우가 필요한데, 이를 위해 scope를 이용한다

scope종류는 다음과 같다

 

1. singleton : 기본 싱글톤 스코프

2. prototype : 어플리케이션에서 요청시 (getBean()) 마다 스프링이 새 인스턴스를 생성

3. request : HTTP 요청별로 인스턴스화 되며 요청이 끝나면 소멸 (spring mvc webapplication 용도)

4. session : HTTP 세션별로 인스턴스화되며 세션이 끝나며 소멸 (spring mvc webapplication 용도)

5. global session : 포틀릿 기반의 웹 어플리케이션 용도. 전역 세션 스코프의 빈은 같은 스프링 MVC를 사용한 포탈 어플리케이션 내의 모든 포틀릿 사이에서 공유할 수 있다

6. thread : 새 스레드에서 요청하면 새로운 bean 인스턴스를 생성, 같은 스레드에 대해서는 항상 같은 bean 인스턴스가 반환

7. custom : org.pringframework.beans.factory.config.Scope를 구현하고 커스텀 스코프를 스프링의 설정에 등록하여 사용

 

, request, session, global session의 스코프는 일반 spring 어플리케이션이 아닌, Spring MVC Web Application에서만 사용되는 용도

 

scope를 정의하는 방법은 두가지가 있다.

 

1. XML 사용 

<bean id="~~" class="~~" scope="singleton"/>


2. Annotation 사용

@Scope("singleton")

public class A{ 

}


'프로그래밍 > Spring Framework' 카테고리의 다른 글

자바 Spring framework MVC 모델  (0) 2018.08.06
Spring AOP  (0) 2018.08.03
Spring Environment 객체  (0) 2018.08.02
스프링을 이용한 객체 생성과 조립(DI 설정)  (0) 2018.08.01
Spring 이란?  (0) 2018.07.31

+ Recent posts