如何在Apache Blueprint中调用bean方法?

时间:2015-04-22 08:59:04

标签: java osgi blueprint-osgi

我有以下java类

public class SecondClass
{
    //...
}

public class MyClass
{
    public void doSomething(SecondClass secondClass)
    {
        //...
    }
}

在蓝图中我有类似下面的内容

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <bean id="secondClass" class="foo.bar.SecondClass" />

    <bean id="myClass" class="foo.bar.MyClass" />

    <!-- How do I invoke myClass.doSomething(secondClass) ??? -->

</blueprint>

有人知道如何从Blueprint中调用myClass.doSomething(secondClass)吗?

1 个答案:

答案 0 :(得分:3)

如果我理解正确(我自己并不熟悉MethodInvokingFactoryBean)你需要的是一个工厂方法,即。如下所示:

   <bean id="myClass" class="foo.bar.MyClass" 
         factory-method="doSomething">   
       <argument ref="secondClass"/>    
   </bean>

您可以在蓝图in this guide(IMO最有用的蓝图资源之一)中找到有关如何使用工厂的更多详细信息。