哪一个是有效的初始化变量ie)构造函数或激活方法?

Shr*_*ram 0 java osgi apache-karaf osgi-bundle

我想在超类中初始化一些变量.

OSGI中,有一个方法activate()在服务/组件启动时调用.但是在activate方法之前调用构造函数.

哪一个(activate()方法或构造函数)在OSGI中初始化变量是有效的.

Pet*_*ens 5

声明服务中的顺序是:

  • 构造函数
  • 注射服务
  • 启用

通常最好在构造函数中尽可能多地初始化,因为它允许您使用final字段,但您当然要了解构造周围的一些问题.由于尚未进行注射,因此通常会将某些初始化推迟到activate方法.效率绝对没有区别.

我们目前正在考虑在OSGi R7规范中添加构造函数注入,这将允许您绕过注入站点并激活方法.