- 所有超级接口:
-
BeanContext
,BeanContextChild
,BeanContextServiceRevokedListener
,BeanContextServicesListener
,Collection
,DesignMode
,EventListener
,Iterable
,Visibility
- 所有已知实现类:
-
BeanContextServicesSupport
BeanContextServices接口为BeanContext提供了一种机制,用于向其中的BeanContextChild对象公开通用的“服务”。
-
Field Summary
Fields declared in interface java.beans.beancontext.BeanContext
globalHierarchyLock
Fields declared in interface java.beans.DesignMode
PROPERTYNAME
-
Method Summary
Modifier and TypeMethodDescriptionvoid
向此BeanContext添加一个BeanContextServicesListener
boolean
addService
(Class<?> serviceClass, BeanContextServiceProvider serviceProvider) 向此BeanContext添加一个服务。Iterator
<?> 获取此上下文的当前可用服务。Iterator
<?> getCurrentServiceSelectors
(Class<?> serviceClass) 通过调用基础BeanContextServiceProvider上的getCurrentServiceSelectors()方法,获取指定服务的服务相关服务参数(服务选择器)列表。getService
(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) 一个BeanContextChild
,或与BeanContextChild
关联的任意对象,可以通过调用此方法从其嵌套的BeanContextServices
获取对当前注册服务的引用。boolean
hasService
(Class<?> serviceClass) 报告给定服务当前是否在此上下文中可用。void
releaseService
(BeanContextChild child, Object requestor, Object service) 通过调用基础BeanContextServiceProvider
上的releaseService()方法,释放BeanContextChild
(或与BeanContextChild关联的任意对象)对指定服务的引用。void
从此BeanContext
中移除一个BeanContextServicesListener
void
revokeService
(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow) 希望从此上下文中移除当前注册服务的BeanContextServiceProviders可以通过调用此方法来实现。Methods declared in interface java.beans.beancontext.BeanContext
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener
Methods declared in interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
Methods declared in interface java.beans.beancontext.BeanContextServiceRevokedListener
serviceRevoked
Methods declared in interface java.beans.beancontext.BeanContextServicesListener
serviceAvailable
Methods declared in interface java.util.Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
Methods declared in interface java.beans.DesignMode
isDesignTime, setDesignTime
Methods declared in interface java.beans.Visibility
avoidingGui, dontUseGui, needsGui, okToUseGui
-
Method Details
-
addService
向此BeanContext添加一个服务。BeanContextServiceProvider
调用此方法来向此上下文注册特定服务。如果服务尚未添加,则BeanContextServices
将服务与BeanContextServiceProvider
关联,并向所有当前注册的BeanContextServicesListeners
触发BeanContextServiceAvailableEvent
。然后该方法返回true
,表示服务添加成功。如果给定服务已经添加,则此方法简单地返回false
。- 参数:
-
serviceClass
- 要添加的服务 -
serviceProvider
- 与服务关联的BeanContextServiceProvider
- 返回:
- 如果服务成功添加,则返回true,否则返回false
-
revokeService
void revokeService(Class<?> serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow) 希望从此上下文中移除当前注册服务的BeanContextServiceProviders可以通过调用此方法来实现。在撤销服务时,BeanContextServices
向其当前注册的BeanContextServiceRevokedListeners
和BeanContextServicesListeners
列表触发BeanContextServiceRevokedEvent
。- 参数:
-
serviceClass
- 要从此BeanContextServices中撤销的服务 -
serviceProvider
- 与正在撤销的特定服务关联的BeanContextServiceProvider -
revokeCurrentServicesNow
- 值为true
表示特殊情况,其中BeanContextServiceProvider
或BeanContextServices
希望立即终止对指定服务的所有当前未完成引用的服务。
-
hasService
报告给定服务当前是否在此上下文中可用。- 参数:
-
serviceClass
- 要查询的服务 - 返回:
- 如果服务可用,则返回true
-
getService
Object getService(BeanContextChild child, Object requestor, Class<?> serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException 一个BeanContextChild
,或与BeanContextChild
关联的任意对象,可以通过调用此方法从其嵌套的BeanContextServices
获取对当前注册服务的引用。调用此方法时,该方法通过在基础BeanContextServiceProvider
上调用getService()方法来获取服务。- 参数:
-
child
- 与此请求相关联的BeanContextChild
-
requestor
- 请求服务的对象 -
serviceClass
- 请求的服务类 -
serviceSelector
- 服务相关参数 -
bcsrl
- 如果服务稍后应撤销,则通知的BeanContextServiceRevokedListener
- 返回:
-
请求的服务的引用,如果未找到则返回
null
- 抛出:
-
TooManyListenersException
- 如果监听器过多
-
releaseService
通过调用基础BeanContextServiceProvider
上的releaseService()方法,释放BeanContextChild
(或与BeanContextChild关联的任意对象)对指定服务的引用。- 参数:
-
child
-BeanContextChild
-
requestor
- 请求者 -
service
- 服务
-
getCurrentServiceClasses
Iterator<?> getCurrentServiceClasses()获取此上下文的当前可用服务。- 返回:
-
由当前可用服务组成的
Iterator
-
getCurrentServiceSelectors
通过调用基础BeanContextServiceProvider上的getCurrentServiceSelectors()方法,获取指定服务的服务相关服务参数(服务选择器)列表。- 参数:
-
serviceClass
- 指定的服务 - 返回:
- 指定serviceClass的当前可用服务选择器
-
addBeanContextServicesListener
向此BeanContext添加一个BeanContextServicesListener
- 参数:
-
bcsl
- 要添加的BeanContextServicesListener
-
removeBeanContextServicesListener
从此BeanContext
中移除一个BeanContextServicesListener
- 参数:
-
bcsl
- 要从此上下文中移除的BeanContextServicesListener
-