简体   繁体   中英

How do I inject constants with hk2 in jersey 2.0?

How do I inject a constant into some class using HK2 in jersey? With Guice I could have some class like

public class DependsOnFoo {

    @Inject
    public DependsOnFoo(@Named("FOO") String foo) {
        ...
    }
    ...
}

and I would configure it in the injector with something like

bind(String.class).named("FOO").toInstance(new String("foo"))

What's the equivalent, if any, in HK2?

I'm in the process of learning hk2 coming from Guice. Honestly I am still in the weeds a little with the complexity of hk2 vs the simplicity of guice. I did find this solution to work for me and it is much similar to the Guice builder. This did seem a little more straight forward than having to use the ServiceLocatorUtilities class.

public class IOCMockRestModule extends AbstractBinder
    bind(20000).to(Integer.class).named("MAX_REQUEST_TIMEOUT");
}

And to use the injected value:

@Inject
protected CustomerResource(ICustomerProvider customerProvider, @Named("MAX_REQUEST_TIMEOUT") int maxTimeoutMillis) {

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM