是否可以告诉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/