209.4.3.6. OSGi 服务解析器

OSGi 服务解析器(服务(Class<T> serviceType))可用于根据 OSGi 捆绑包上下文中的类型轻松检索服务。

public class MyKuraRouter extends KuraRouter {

    @Override
    public void configure() throws Exception {
        MyService myService = service(MyService.class);
        ...
    }

}

如果找不到 service,则返回 null 值。如果服务不可用,则需要应用程序失败,使用 requiredService (Class) 方法。如果找不到服务,则 requiredService 会引发 IllegalStateException

public class MyKuraRouter extends KuraRouter {

    @Override
    public void configure() throws Exception {
        MyService myService = requiredService(MyService.class);
        ...
    }

}