kr.co.hit.live.container.impl
Class SpringServiceContainer

java.lang.Object
  extended by kr.co.hit.live.container.impl.SpringServiceContainer
All Implemented Interfaces:
ServiceContainer

public class SpringServiceContainer
extends Object
implements ServiceContainer

Spring의 ApplicationContext 객체를 사용하여 ServiceContainer를 구현한 클래스이다. 서비스 정의 파일은 Spring의 것을 따른다.

Since:
4.0
Author:
김형도

Constructor Summary
SpringServiceContainer()
          live 설정 파일의 디폴트 설정값을 기준으로 컨테이너 객체를 생성하는 디폴트 생성자이다.
SpringServiceContainer(File file)
          Spring Bean 설정 파일을 읽어 spring 서비스 컨테이너를 생성.
SpringServiceContainer(File[] files)
          Spring Bean 설정 파일들을 읽어 spring 서비스 컨테이너를 생성.
SpringServiceContainer(String containerName)
          live 설정 파일에서 주어진 이름의 설정값을 기준으로 컨테이너 객체를 생성한다.
SpringServiceContainer(String svcDir, String[] patterns)
          서비스 설정 파일 디렉토리와 설정 파일 패턴 목록을 주면 해당 파일들을 찾아서 서비스 정의 항목을 로딩한다.
 
Method Summary
 void addPostProcessor(ServicePostProcessor postProcessor)
          서비스 객체 생성후 후처리를 진행할 ServicePostProcessor 객체를 등록한다.
 void close()
          컨테이너를 종료한다.
 boolean containsService(String svcName)
          주어진 서비스 명이 등록되어 있는지 여부를 반환한다.
 String[] getAllServiceNames()
          서비스 컨테이너에 등록된 모든 서비스 명을 배열로 리턴한다.
 ClassLoader getClassLoader()
          서비스 클래스를 로딩할 때 사용하는 클래스로더 객체를 반환한다.
 String[] getPatternServiceNames()
          등록되어 있는 서비스 명 중에서 패턴형태의 이름을 반환한다.
 Object getService(String svcName)
          주어진 서비스 명에 해당되는 서비스 객체를 반환한다.
 ServiceInfo[] getServiceInfo()
          등록된 서비스들에 대한 정보 목록을 반환한다.
 ServiceInfo getServiceInfo(String svcName)
          특정 서비스에 대한 정보를 반환한다.
 Map<String,Object> getServicesOfType(String typeName)
          주어진 타입명에 해당되는 서비스 객체 목록을 반환한다.
 void populateServices()
          pre-init, singleton, activate 속성이 모두 true 인 서비스들을 미리 생성한다.
 void reload()
          서비스 객체들을 다시 생성한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpringServiceContainer

public SpringServiceContainer()
live 설정 파일의 디폴트 설정값을 기준으로 컨테이너 객체를 생성하는 디폴트 생성자이다.


SpringServiceContainer

public SpringServiceContainer(String containerName)
live 설정 파일에서 주어진 이름의 설정값을 기준으로 컨테이너 객체를 생성한다.

Parameters:
containerName -

SpringServiceContainer

public SpringServiceContainer(String svcDir,
                              String[] patterns)
서비스 설정 파일 디렉토리와 설정 파일 패턴 목록을 주면 해당 파일들을 찾아서 서비스 정의 항목을 로딩한다.

Parameters:
svcDir -
patterns -

SpringServiceContainer

public SpringServiceContainer(File file)
Spring Bean 설정 파일을 읽어 spring 서비스 컨테이너를 생성.

Parameters:
rootDir -
fileName -

SpringServiceContainer

public SpringServiceContainer(File[] files)
Spring Bean 설정 파일들을 읽어 spring 서비스 컨테이너를 생성.

Parameters:
rootDir -
fileNames -
Method Detail

getClassLoader

public ClassLoader getClassLoader()
Description copied from interface: ServiceContainer
서비스 클래스를 로딩할 때 사용하는 클래스로더 객체를 반환한다.

Specified by:
getClassLoader in interface ServiceContainer
Returns:

getAllServiceNames

public String[] getAllServiceNames()
Description copied from interface: ServiceContainer
서비스 컨테이너에 등록된 모든 서비스 명을 배열로 리턴한다.

Specified by:
getAllServiceNames in interface ServiceContainer
Returns:
String[] 서비스 명 배열

containsService

public boolean containsService(String svcName)
Description copied from interface: ServiceContainer
주어진 서비스 명이 등록되어 있는지 여부를 반환한다.

Specified by:
containsService in interface ServiceContainer
Returns:

reload

public void reload()
Description copied from interface: ServiceContainer
서비스 객체들을 다시 생성한다.

Specified by:
reload in interface ServiceContainer

getPatternServiceNames

public String[] getPatternServiceNames()
등록되어 있는 서비스 명 중에서 패턴형태의 이름을 반환한다.

Specified by:
getPatternServiceNames in interface ServiceContainer
Returns:

getService

public Object getService(String svcName)
                  throws ServiceContainerException
Description copied from interface: ServiceContainer
주어진 서비스 명에 해당되는 서비스 객체를 반환한다. 서비스 명이 서비스 정의 파일에 없다면 ServiceContainerException이 발생된다.

Specified by:
getService in interface ServiceContainer
Parameters:
svcName - 얻고자하는 서비스 명
Returns:
해당 서비스 객체
Throws:
ServiceContainerException - 서비스가 정의되지 않았거나, 서비스 객체 생성 시 오류가 발생했을 경우

getServicesOfType

public Map<String,Object> getServicesOfType(String typeName)
                                     throws ServiceContainerException
Description copied from interface: ServiceContainer
주어진 타입명에 해당되는 서비스 객체 목록을 반환한다. 하위클래스는 여부는 고려하지 않고 타입명이 정확히 일치하는 경우만 찾아서 반환한다. 타입 명 비교 시에 서비스의 interface와 class 설정 값을 모두 확인한다.

Specified by:
getServicesOfType in interface ServiceContainer
Parameters:
typeName - 얻고자하는 서비스의 클래스 명(전체 패키지)
Returns:
해당 서비스 객체를 담고 있는 Map 객체
Throws:
ServiceContainerException - 서비스 객체 생성 시 오류가 발생했을 경우

addPostProcessor

public void addPostProcessor(ServicePostProcessor postProcessor)
Description copied from interface: ServiceContainer
서비스 객체 생성후 후처리를 진행할 ServicePostProcessor 객체를 등록한다.

Specified by:
addPostProcessor in interface ServiceContainer

populateServices

public void populateServices()
Description copied from interface: ServiceContainer
pre-init, singleton, activate 속성이 모두 true 인 서비스들을 미리 생성한다.

Specified by:
populateServices in interface ServiceContainer

close

public void close()
Description copied from interface: ServiceContainer
컨테이너를 종료한다. 필요한 리소스를 반환하고 서비스들을 제거하는 작업들을 수행한다.

Specified by:
close in interface ServiceContainer

getServiceInfo

public ServiceInfo[] getServiceInfo()
Description copied from interface: ServiceContainer
등록된 서비스들에 대한 정보 목록을 반환한다.

Specified by:
getServiceInfo in interface ServiceContainer
Returns:
ServiceInfo[]

getServiceInfo

public ServiceInfo getServiceInfo(String svcName)
Description copied from interface: ServiceContainer
특정 서비스에 대한 정보를 반환한다.

Specified by:
getServiceInfo in interface ServiceContainer
Returns:


Copyright © 2014. All Rights Reserved.