根据 HK2 @Service javadoc
放置在要自动添加到 hk2 ServiceLocator 的类上的注释。
我不知道如何ServiceLocator
自动查找带注释的类。
测试服务
@Contract
public interface TestService {
}
测试服务实现
@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
自动查找带注释的类?我是不是误会了什么?