Osgi将bean注入Activator

时间:2017-04-25 09:43:06

标签: osgi blueprint-osgi

我有3个类,一个是 Activator ,另外两个是' mysqlConfiguration '和' BinaryLogListner ',其中' mysqlConfiguration < / em>'使用 blueprint 注入' BinaryLogListner '。

这是我的蓝图(注射部分):

<bean id="binaryLogListnerBean" class="cdc.mysql.BinaryLogListner">
    <property name="mysqlConfiguration" ref="configManagementMysql"></property>
</bean>

我想在捆绑启动时启动 BinaryLogListner ,因此我使用以下命令从 Activator 类实现了它

BinaryLogListner binaryLogListner = new BinaryLogListner();

当我尝试使用注入' BinaryLogListner '的' mysqlConfiguration '时,我会得到空指针异常

我想知道如何将bean注入激活器,这可能吗? 有没有想过如何在这些情况下启动bean?

1 个答案:

答案 0 :(得分:3)

在Activator中,您使用新的BinaryLogListner()实例化该类。所以你只需要在没有任何蓝图注入的情况下获得普通类。这些注入只有在蓝图创建bean实例时才有效。

您应该在任何蓝图bean上使用init-method来响应bundle的(蓝图)激活,而不是Activator。

通常,无论何时在捆绑中使用蓝图,都不应使用激活器。