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

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

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

最佳答案

如果我理解正确(我自己对 MethodInvokingFactoryBean 不是很熟悉),您需要的是工厂方法,即。类似于以下内容:

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

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

关于java - 如何在 Apache Blueprint 中调用 bean 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792520/

相关文章:

gradle - 在OSGi胖子装束中查找重复的JAR

java - 将资源文件添加到 karaf 类路径

java - OSGI JNDI 是否允许与来自非 OSGI 代码的 JNDI 调用共存?

java - 程序连续两次打印菜单

java - 屏幕更改后应用程序崩溃

java - 读取时,android 中保存的位图长度为 3 个字节

java - 使用 XML 解析器实现作为 OSGi 服务

java - Apache Camel 和 Blueprint,如何在另一个包中找到一条路线?

java - OSGi 蓝图配置 : injecting a list of bean references

java.lang.LinkageError : ClassCastException 错误