在一个包中具有接口 IService,由类 ServiceImpl 实现:
public interface IService
{
void doSomething();
}
@Component
@Provides
@Instantiate
public class ServiceImpl implements IService
{
public void doSomething()
{
}
}
在第二个包中,我有另一个类 ServiceConsumer(一个 GoGo shell 命令;不包括特定注释),使用第一个包中提供的服务:
@Component
@Provides
@Instantiate
public class ServiceConsumer
{
@Requires
private IService service;
public doIt()
{
service.doSomething();
}
}
当我在 Felix 中导入并启动这两个包时,我可以看到我的所有服务都使用 ipojo:instances 正确实例化,并且 ServiceImpl 提供了 IService。但是,执行 doIt() 时,service 为空。
由于 IService 似乎可用,我希望 @Requires 注入好的实例,但似乎没有这样做。
我有一种很明显的感觉,我没有做,但我不知道是什么。