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 - 指定的服务