public interface BeanContextServiceProvider
BeanContext 的主要功能之一是充当 JavaBeans 与 BeanContextServiceProviders 之间的集合点。
嵌套在 BeanContext 中的 JavaBean 可能要求 BeanContext 提供 "service" 的一个实例,该 JavaBean 基于表示该服务的 Java Class 对象的引用。
在上下文委托自己的上下文来满足服务请求的情况下,如果已经向上下文或其某个嵌套上下文注册了一个此类服务,那么会请求与该服务相关联的 BeanContextServiceProvider 提供该服务的一个实例。
ServcieProvider 可能总是返回相同的实例,它也可能为每个请求构造一个新的实例。
方法摘要 | |
---|---|
Iterator |
getCurrentServiceSelectors(BeanContextServices bcs, Class serviceClass) 由 BeanContextServices 调用,此方法获得指定服务的当前服务选择器。 |
Object |
getService(BeanContextServices bcs, Object requestor, Class serviceClass, Object serviceSelector) 由 BeanContextServices 调用,此方法请求来自此 BeanContextServiceProvider 服务的一个实例。 |
void |
releaseService(BeanContextServices bcs, Object requestor, Object service) 由 BeanContextServices 调用,此方法释放一个对特定服务的嵌套 BeanContextChild (或与 BeanContextChild 关联的任意对象)的引用。 |
方法详细信息 |
---|
Object getService(BeanContextServices bcs, Object requestor, Class serviceClass, Object serviceSelector)
BeanContextServices
调用,此方法请求来自此
BeanContextServiceProvider
服务的一个实例。
bcs
- 与此特定请求相关联的
BeanContextServices
。此参数允许
BeanContextServiceProvider
区别来自多个源的服务请求。
requestor
- 请求服务的对象
serviceClass
- 请求的服务
serviceSelector
- 用于特定服务的与服务有关的参数,如果不适用,则为
null
。
void releaseService(BeanContextServices bcs, Object requestor, Object service)
BeanContextServices
调用,此方法释放一个对特定服务的嵌套
BeanContextChild
(或与
BeanContextChild
关联的任意对象)的引用。
bcs
- 与此特定释放请求相关联的
BeanContextServices
requestor
- 请求释放服务的对象
service
- 要释放的服务
Iterator getCurrentServiceSelectors(BeanContextServices bcs, Class serviceClass)
BeanContextServices
调用,此方法获得指定服务的当前服务选择器。服务选择器是一种特定于服务的参数,它的典型示例可能包括:用于服务实现类的构造方法的参数、特定服务的属性值或已存在实现的映射中的键。
bcs
- 此请求的
BeanContextServices
serviceClass
- 指定的服务