我在使用工厂时看到了一个关于蓝图的示例。在这个例子中,他们对参数的值进行了硬编码,如下面例子中的"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>
您只需创建一个工厂类,该类具有与上面类似但非静态的方法,并将其作为服务公开。或者您只需让客户端使用静态方法。