是否可以告诉Guice在之后调用某些方法(即init())
实例化给定类型的对象?

我在EJB 3中寻找类似于@PostConstruct批注的功能。

最佳答案

实际上,这是可能的。

您需要定义一个TypeListener才能使功能正常运行。在模块定义中遵循以下内容:

bindListener(Matchers.subclassesOf(MyInitClass.class), new TypeListener() {
    @Override
    public <I> void hear(final TypeLiteral<I> typeLiteral, TypeEncounter<I> typeEncounter) {
        typeEncounter.register(new InjectionListener<I>() {
            @Override
            public void afterInjection(Object i) {
                MyInitClass m = (MyInitClass) i;
                m.init();
            }
        });
    }
});

关于guice - 实例化对象后,Guice调用init方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2093344/

10-12 06:25