大气中的自定义guice模块

Custom guice module in atmosphere

有没有办法定义被大气拾取的自定义 guice 模块?我找到了 GuiceObjectFactory 并在其中找到了私有的 class AtmosphereModule,这在这里没有帮助。

目标是创建可在大气应用程序中使用的 guice 提供程序绑定。

谢谢。

编辑

没有更多要补充的了。如上所述,我的目标是能够定义自定义 guice 提供程序,例如

public class ObjectMapperProvider implements Provider<ObjectMapper> {

    @Override
    public ObjectMapper get() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        return objectMapper;
    }
}

我已按照 the official wiki on how to enable guice for DI. The question is now if there is a way to bind my custom provider (like in https://github.com/google/guice/wiki/ProviderBindings 的说明进行操作)。

好的,再次查看代码后答案很明显。可以自己创建一个injector,在bootstrap过程中添加到serlvet context中,然后被atmosphere拾取。

Config.Builder builder = new Config.Builder();
builder.resource(MyResource.class)
        .port(8080)
        .host("localhost")
        .servletContextAttribute(Injector.class.getName(), Guice.createInjector(new CustomModule()))
        .build();