如何从 OSGi 中的 BundleContext 获取 ComponentContext

How to get ComponentContext from BundleContext in OSGi

我有一个包含多个组件的 OSGi 包,我想 activate/deactivate 来自同一包中其他组件的组件。

我从下面的代码中得到 BundleContext

import aQute.bnd.annotation.component.Activate;
import aQute.bnd.annotation.component.Component;
import aQute.bnd.annotation.component.Deactivate;

@Activate
public void activate(Map<String, Object> properties) {

    BundleContext bundleContext = FrameworkUtil.getBundle(MyComponent.class).getBundleContext();
}

但是我怎样才能得到 ComponentContext 以便我可以做 enableComponentdisableComponent

只需注入 ComponentContext。然后您可以从中获取 BundleContext 以及配置属性。

@Activate
public void activate(ComponentContext context)