Osgi蓝图:工厂参数值



我在使用工厂时看到了一个关于蓝图的示例。在这个例子中,他们对参数的值进行了硬编码,如下面例子中的"2"。

 public class StaticAccountFactory {      
   public static Account createAccount(long number) {
   return new Account(number);
   }
 }
...
<bean id="accountTwo"
 class="org.apache.aries.simple.StaticAccountFactory" 
 factory-method="createAccount">   
   <argument **value="2"**/>

我的问题是,如何从想要使用这个bean的客户端捆绑包中发送这个值?以及如何从这个bean中为该提议创建服务?如果该工厂需要一个bundle对象作为参数,而不是简单的值,那么客户端bundle如何将自己的bundle传递给该工厂呢?

提前感谢,anurak

  <bean id="combinedClassLoader" class="my.package.hazelcast.CombinedClassLoader" init-method="init" destroy-method="destroy"/>
  <bean id="hazelcastClient" class="my.package.hazelcast.HazelcastInstanceFactory" factory-method="create">
    <argument value="123"/>
    <argument ref="combinedClassLoader"/>
  </bean>

您只需创建一个工厂类,该类具有与上面类似但非静态的方法,并将其作为服务公开。或者您只需让客户端使用静态方法。

最新更新