Osgi 将 bean 注入 Activator
Osgi Inject bean into Activator
我有 3 个 classes ,一个是 Activator 和另外两个,'mysqlConfiguration' 和 'BinaryLogListner' 其中 'mysqlConfiguration' 使用 blueprint[=35= 注入到 'BinaryLogListner' ].
这是我的蓝图(注入部分):
<bean id="binaryLogListnerBean" class="cdc.mysql.BinaryLogListner">
<property name="mysqlConfiguration" ref="configManagementMysql"></property>
</bean>
我想在包启动时启动 BinaryLogListner,所以我从 Activator class 实例化了它:
BinaryLogListner binaryLogListner = new BinaryLogListner();
当我尝试使用注入到“BinaryLogListner”中的“mysqlConfiguration”时,我将得到一个 null指针异常.
我想知道如何将 bean 注入激活器,这可能吗?
有没有想过如何在这些情况下启动 bean?
在 Activator 中,您使用新的 BinaryLogListner() 实例化 class。因此,您只需获得没有任何蓝图注入的普通 class。这些注入仅在 bean 实例由蓝图创建时才有效。
您应该简单地在任何蓝图 bean 上使用初始化方法来对捆绑包的(蓝图)激活做出反应,而不是激活器。
通常,只要您在捆绑包中使用蓝图,就不应同时使用激活器。
我有 3 个 classes ,一个是 Activator 和另外两个,'mysqlConfiguration' 和 'BinaryLogListner' 其中 'mysqlConfiguration' 使用 blueprint[=35= 注入到 'BinaryLogListner' ].
这是我的蓝图(注入部分):
<bean id="binaryLogListnerBean" class="cdc.mysql.BinaryLogListner">
<property name="mysqlConfiguration" ref="configManagementMysql"></property>
</bean>
我想在包启动时启动 BinaryLogListner,所以我从 Activator class 实例化了它:
BinaryLogListner binaryLogListner = new BinaryLogListner();
当我尝试使用注入到“BinaryLogListner”中的“mysqlConfiguration”时,我将得到一个 null指针异常.
我想知道如何将 bean 注入激活器,这可能吗? 有没有想过如何在这些情况下启动 bean?
在 Activator 中,您使用新的 BinaryLogListner() 实例化 class。因此,您只需获得没有任何蓝图注入的普通 class。这些注入仅在 bean 实例由蓝图创建时才有效。
您应该简单地在任何蓝图 bean 上使用初始化方法来对捆绑包的(蓝图)激活做出反应,而不是激活器。
通常,只要您在捆绑包中使用蓝图,就不应同时使用激活器。