BeanContextServices

BeanContextServices (BeanContext 서비스 인터페이스)

BeanContextServices 인터페이스는 BeanContext가 내부의 BeanContextChild 객체들에게 일반적인 "서비스"를 제공하기 위한 메커니즘을 정의해요. BeanContext가 단순히 빈들의 집합을 관리하는 것을 넘어, 추가적인 서비스를 제공할 수 있게 해 줘요.

출처: Java API Reference

본문

BeanContextServicesBeanContext, BeanContextServicesListener, BeanContextServiceRevokedListener를 상속하는 인터페이스예요. BeanContext 안의 자식 객체들이 사용할 수 있는 서비스(예: 인쇄, 보안 등)를 등록하고 제공하는 기능을 담당해요.

BeanContext 안의 BeanContextChildgetService()를 호출해 원하는 서비스를 요청할 수 있어요. 서비스는 BeanContextServiceProvider가 실제 구현을 제공하며, 서비스 클래스와 선택자(selector)를 기준으로 요청돼요. 서비스가 더 이상 필요 없으면 releaseService()로 해제해요.

주요 메서드는 다음과 같아요.

boolean addService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider)

void revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)

boolean hasService(Class<?> serviceClass)

Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException

void releaseService(BeanContextChild child, Object requestor, Object service)

Iterator<?> getCurrentServiceClasses()

Iterator<?> getCurrentServiceSelectors(Class<?> serviceClass)

void addBeanContextServicesListener(BeanContextServicesListener bcsl)
  • addService() / revokeService() — 서비스를 등록하거나 회수해요.
  • hasService() — 특정 서비스가 등록돼 있는지 확인해요.
  • getService() / releaseService() — 서비스를 요청하고 해제해요.
  • getCurrentServiceClasses() / getCurrentServiceSelectors() — 현재 등록된 서비스 클래스와 선택자 목록을 반환해요.

대표적인 구현 클래스로 BeanContextServicesSupport가 있어요.

더 알아보기 (Learn more)

Java 공식 API