gpt4 book ai didi

java - java中如何拦截特定接口(interface)?

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:08 28 4
gpt4 key购买 nike

MyInterceptor中,IfclocalIfcRemote哪个接口(interface)调用了MyEjb中的doStuff方法?有可能知道你的bean是通过哪个“ channel ”被调用的吗?我需要知道哪个依赖注入(inject)调用了该方法。

@Local
public interface IfcLocal {
void doStuff(String s);
}

@Remote
public interface IfcRemote {
void doStuff(String s);
}

@Stateless
@Interceptors({ MyInterceptor.class })
public class MyEjb implements IfcLocal, IfcRemote {
@Override
public void doStuff(String s) {
System.out.println(s);
}
}

public class MyManagedBean {
@EJB private ifcLocal ifcLocal;
@EJB private IfcRemote ifcRemote;

public void go() {
ifcLocal.doStuff("xxx");
ifcRemote.doStuff("xxx");
}
}

public class MyInterceptor {
@AroundInvoke
public Object intercept(InvocationContext inv) throws Exception {
// ??? who invoked ???
System.out.prinln(inv.getTarget().getClass()); // print MyEjb
}
}

最佳答案

注入(inject)@Resource private SessionContext sessionContext;MyInterceptor 。之后:Class<?> interfaceReference = sessionContext.getInvokedBusinessInterface() .

关于java - java中如何拦截特定接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353486/

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