使用 Blueprint Container 规范构建 OSGi 应用程序
2009-11-26 00:00:00 来源:WEB开发网清单 3 展示了一个静态的工厂方法构造。在这个例子中,class 属性指定了包含静态工厂方法的类的名称。这个静态工厂方法的名称由 factory-method 属性指定。Blueprint Container 将对 AccountFactory 类调用 createAccount() 静态方法并将 2 作为参数传递,用于创建 Account 对象。当工厂返回创建的对象后,容器将向它注入描述属性。
清单 3. 静态工厂方法示例 public class StaticAccountFactory {
public static Account createAccount(long number) {
return new Account(number);
}
}
<bean id=”accountTwo” class=“org.apache.geronimo.osgi.StaticAccountFactory”
factory-method=“createAccount”>
<argument value=”2”/>
<property name=”description” value=”#2 account”/>
</bean>
对于实例工厂方法构建,如清单 4 所示,使用了两个管理器。其中一个管理器是工厂,另一个管理器使用该工厂创建对象。factory-ref 用来指定顶级 bean 的 ID 或行为类似工厂的引用管理器。提供的工厂对象必须具有一个由 factory-method 属性指定的工厂方法。
在本例中,accountFactory bean 管理器是一个工厂。Blueprint Container 将首先创建 AccountFactory 实例,该实例具有自己的参数和属性。在本例中,只指定了一个参数:工厂名。Blueprint Container 随后将对 AccountFactory 实例调用 createAccount() 方法,然后将 3 作为参数传递,以创建 Account 对象。一旦工厂返回创建的对象,容器将向其注入描述属性。
更多精彩
赞助商链接