public interface BeanContextServices extends BeanContext, BeanContextServicesListener
BeanContextServices接口提供了一个机制,让BeanContext将通用的“服务”公开给它的BeanContextChild对象。
globalHierarchyLock
PROPERTYNAME
Modifier and Type | Method and Description |
---|---|
void |
addBeanContextServicesListener(BeanContextServicesListener bcsl)
添加一个
BeanContextServicesListener 来此BeanContext
|
boolean |
addService(类 serviceClass, BeanContextServiceProvider serviceProvider)
向这个BeanContext添加一个服务。
|
Iterator |
getCurrentServiceClasses()
获取此上下文的当前可用服务。
|
Iterator |
getCurrentServiceSelectors(类 serviceClass)
通过调用底层BeanContextServiceProvider上的getCurrentServiceSelectors(),获取指定服务的服务相关服务参数(服务选择器)列表。
|
Object |
getService(BeanContextChild child, Object requestor, 类 serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl)
A
BeanContextChild 或与
BeanContextChild 任何任意对象可以通过调用该方法从其嵌套
BeanContextServices 获得对当前注册服务的
BeanContextServices 。
|
boolean |
hasService(类 serviceClass)
报告当前是否可以从此上下文获得给定的服务。
|
void |
releaseService(BeanContextChild child, Object requestor, Object service)
通过调用底层BeanContextServiceProvider上的releaseService(),释放一个
BeanContextChild (或任何与BeanContextChild关联的任意对象)对指定服务的
BeanContextServiceProvider 。
|
void |
removeBeanContextServicesListener(BeanContextServicesListener bcsl)
从此
BeanContextServicesListener 删除
BeanContext
|
void |
revokeService(类 serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
希望从此上下文中删除当前注册的服务的BeanContextServiceProviders可以通过调用此方法来实现。
|
addBeanContextMembershipListener, getResource, getResourceAsStream, instantiateChild, removeBeanContextMembershipListener
addPropertyChangeListener, addVetoableChangeListener, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray
isDesignTime, setDesignTime
avoidingGui, dontUseGui, needsGui, okToUseGui
serviceAvailable
serviceRevoked
boolean addService(类 serviceClass, BeanContextServiceProvider serviceProvider)
BeanContextServiceProvider
称这个方法用这个上下文来注册一个特定的服务。
如果服务先前没有被添加,该BeanContextServices
关联与服务BeanContextServiceProvider
并触发一个BeanContextServiceAvailableEvent
到所有当前已注册BeanContextServicesListeners
。
该方法然后返回true
,表示添加服务成功。
如果给定的服务已经被添加,这个方法只返回false
。
serviceClass
- 要添加的服务
serviceProvider
- 与服务相关
BeanContextServiceProvider
BeanContextServiceProvider
void revokeService(类 serviceClass, BeanContextServiceProvider serviceProvider, boolean revokeCurrentServicesNow)
BeanContextServices
, BeanContextServiceRevokedEvent
将其BeanContextServiceRevokedListeners
和BeanContextServicesListeners
列表中的BeanContextServicesListeners
。
serviceClass
- 从这个BeanContextServices撤销的服务
serviceProvider
- 与正在撤销的特定服务相关联的BeanContextServiceProvider
revokeCurrentServicesNow
-值
true
表示特殊情况,其中
BeanContextServiceProvider
或
BeanContextServices
希望立即终止服务,指定服务当前所有未完成的引用。
boolean hasService(类 serviceClass)
serviceClass
- 有关服务
Object getService(BeanContextChild child, Object requestor, 类 serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) throws TooManyListenersException
BeanContextChild
或与BeanContextChild
任何任意对象可以通过调用该方法从其嵌套BeanContextServices
获得对当前注册服务的BeanContextServices
。
当被调用时,该方法通过调用底层上的getService()方法获取的服务BeanContextServiceProvider
。
child
- 与此请求相关
BeanContextChild
BeanContextChild
requestor
- 请求服务的对象
serviceClass
- 所请求的服务的类
serviceSelector
- 服务相关参数
bcsrl
-
BeanContextServiceRevokedListener
通知服务是否应该以后被撤销
null
TooManyListenersException
- 如果听众太多了
void releaseService(BeanContextChild child, Object requestor, Object service)
BeanContextChild
(或任何与BeanContextChild关联的任意对象)对指定服务的
BeanContextServiceProvider
。
child
-
BeanContextChild
requestor
- 请求者
service
- 服务
Iterator getCurrentServiceClasses()
Iterator
由当前可用的服务组成
Iterator getCurrentServiceSelectors(类 serviceClass)
serviceClass
- 指定的服务
void addBeanContextServicesListener(BeanContextServicesListener bcsl)
BeanContextServicesListener
来此BeanContext
bcsl
- 要添加的
BeanContextServicesListener
void removeBeanContextServicesListener(BeanContextServicesListener bcsl)
BeanContextServicesListener
删除
BeanContext
bcsl
- 从此上下文中删除的
BeanContextServicesListener