我想在超类中初始化一些变量.
在OSGI中,有一个方法
activate()
在服务/组件启动时调用.但是在activate
方法之前调用构造函数.
哪一个(activate()
方法或构造函数)在OSGI中初始化变量是有效的.
声明服务中的顺序是:
构造函数
注射服务
启用
通常最好在构造函数中尽可能多地初始化,因为它允许您使用final
字段,但您当然要了解构造周围的一些问题.由于尚未进行注射,因此通常会将某些初始化推迟到activate方法.效率绝对没有区别.
我们目前正在考虑在OSGi R7规范中添加构造函数注入,这将允许您绕过注入站点并激活方法.