gpt4 book ai didi

java - IncationContext 是否传播到嵌套方法

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:40 24 4
gpt4 key购买 nike

我需要从父级发送到嵌套方法参数

我定义了一个 EJB 拦截器并在业务方法级别使用它我需要在嵌套方法中了解应从父调用程序方法(非业务数据)发送的一些信息,这些信息将在 aduit 中使用所以,我的问题是,InitationContext 是否传播到嵌套方法

最佳答案

我也遇到了类似的问题。据我所知,上下文不会传播到嵌套方法,至少它对我不起作用。如果您有一个 Activity 事务(使用 EJB 时,您可能有一个事务),您可以尝试使用 TransactionScoped bean 。如果没有事务,您可能会尝试定义自定义 bean 范围(在 CDI 中),但我没有尝试这样做。查看 TransactionScoped bean 的可能实现。

@SetAuditData
public void someMethod(String user, String foo...) throws Exception {

}

和拦截器(为简单起见,假设参数是第一个参数,它是一个字符串)

@SetAuditData
@Interceptor
public class AuditInterceptor {

@Inject
AuditTransactionalBean auditData;

@AroundInvoke
public Object setAuditData(InvocationContext ctx) throws Exception {
Object[] parameters = ctx.getParameters();
String user = (String) parameters[0];
auditData.setData(user);
return ctx.proceed();
}
}

还有一个保存数据的 bean(必须是可序列化的才能钝化)

@TransactionScoped
public class AuditTransactionalBean implements Serializable {

String data;

public String getData() {
return data;
}

public void setData(String data) {
this.data=data;
}
}

然后可以将该 bean 注入(inject)到嵌套 bean/方法中。

关于java - IncationContext 是否传播到嵌套方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com