Osgi蓝图:工厂参数值

时间:2014-09-15 06:35:04

标签: osgi blueprint

我在使用工厂时看到了一个关于蓝图的例子。 在这个例子中,他们硬编码参数的值,如" 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

2 个答案:

答案 0 :(得分:1)

  <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>

答案 1 :(得分:0)

您只需使用上述方法创建工厂类,但不是静态的,并将其作为服务公开。或者您只是让客户端使用静态方法。