Скажем, у меня есть следующий перехватчик в приложении SEAM:SEAM: Компонент «дезинтегрирован» «слишком рано» в перехватчике?
public class MyInterceptor {
@In
private Monitor myMonitor;
@AroundInvoke
public Object aroundInvoke(InvocationContext ctx) throws Exception {
try {
myMonitor.a();
return ctx.proceed();
}
finally {
myMonitor.b();
}
}
}
myMonitor.a() работает (так монитор правильно введен), myMonitor.b() терпит неудачу, потому что монитор уже пустой. Seam Doc гласит: «Введенные значения дезинтегрируются (то есть устанавливаются в нуль) сразу после завершения и исключения метода».
Это то, что происходит? Могу ли я сделать что-то, чтобы сказать SEAM «пока еще» «дезинтегрировать» компонент? Конечно, я могу сделать что-то вроде XContext.get (..), но мне интересно, это ошибка или ошибка с моей стороны. благодаря!
@Shervin Полезно знать (+1), Шервин. Seam Framework: опыт Evolution Java EE говорит, что вы можете избежать @ In-jection с помощью одного метода setter без аннотации @In. –