7

HK2 @Service javadocによると

hk2 ServiceLocatorに自動的に追加されるクラスに配置される注釈。

ServiceLocator注釈付きクラスを自動的に検索する方法がわかりません。

テストサービス

@Contract
public interface TestService {

}

TestServiceImpl

@Service
public class TestServiceImpl implements TestService {

}

主要

public static void main(String[] args) {
    ServiceLocator locator = ServiceLocatorUtilities.createAndPopulateServiceLocator();

    TestService service = locator.getService(TestServiceImpl.class);    
    System.out.println(service); // null
}

結果は常にnullです。が見つけられるDescriptorように追加する必要があります。ServiceLocator

public static void main(String[] args) {
    ServiceLocator locator = ServiceLocatorUtilities.createAndPopulateServiceLocator();

    DynamicConfigurationService dcs = locator.getService(DynamicConfigurationService.class);
    DynamicConfiguration config = dcs.createDynamicConfiguration();
    config.bind(BuilderHelper.link(TestServiceImpl.class).to(TestService.class).in(Singleton.class).build());
    config.commit();

    TestService service = locator.getService(TestServiceImpl.class);    
    System.out.println(service); // TestServiceImpl instance
}

ServiceLocator注釈付きのクラスを自動的に見つけるにはどうすればよいですか? 私は何かを誤解しましたか?

4

3 に答える 3