Secondo HK2 @Service javadocIn che modo ServiceLocator trova @Service e @Contact automaticamente in HK2?
nota posizionato sulle classi che devono essere automaticamente aggiunti a un ServiceLocator hk2.
Non so come rendere ServiceLocator
trovare automaticamente le classi annotate.
TestService
@Contract
public interface TestService {
}
TestServiceImpl
@Service
public class TestServiceImpl implements TestService {
}
principale
public static void main(String[] args) {
ServiceLocator locator = ServiceLocatorUtilities.createAndPopulateServiceLocator();
TestService service = locator.getService(TestServiceImpl.class);
System.out.println(service); // null
}
Il risultato è sempre puntuale s null
. Devo aggiungere Descriptor
in modo che lo ServiceLocator
possa trovarlo.
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
}
Come posso lascio ServiceLocator
trovare automaticamente le classi annotate? Ho frainteso qualcosa?
Come aggiornamento a questo c'è anche ora un generatore di metadati hk2 più facile da usare. Tutto quello che devi fare è metterlo nel tuo classpath. Maggiori informazioni qui: https://hk2.java.net/2.4.0-b16/inhabitant-generator.html – jwells131313
Non correlate a questa risposta in particolare, ma sto facendo qualche ricerca su HK2 da alcuni giorni e ogni volta che trovo una risposta i collegamenti alle informazioni reali/aiuto atterrano sempre su questa pagina iniziale https://javaee.github.io/hk2/ che è una specie di non utile :( – A4L