我有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?
答案 0 :(得分:3)
在Activator中,您使用新的BinaryLogListner()实例化该类。所以你只需要在没有任何蓝图注入的情况下获得普通类。这些注入只有在蓝图创建bean实例时才有效。
您应该在任何蓝图bean上使用init-method来响应bundle的(蓝图)激活,而不是Activator。
通常,无论何时在捆绑中使用蓝图,都不应使用激活器。