在我的项目中,有一个第三方RPC libray,我想为rpc服务生成一个动态代理,因此我可以记录rpc请求和响应,如何获取有关该服务的元信息?像远程服务器的IP和端口? rpc服务由FactoryBean类生成,其中包含元信息。
class RPCClientProxy implements FactoryBean {
//meta info
String remoteIp;
int remotePort;
public Object getObject() {
generate by spring's ProxyFactory
}
}
class MyBeanPostProcessor implement BeanPostProcessor {
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
Class clazz = bean.getClass();
Class[] interfaces = clazz.getInterfaces();
for (Class interfaze : interfaces) {
if (interfaze.getName().enWith("xxx") {
genreate class which can log rpc request and response by jkd dynamic proxy
}
}
}
class MyRPCCallInvocationHandler implements InvocationHandler {
public Object invoke(Object proxy, final Method method, final Object[] args) throws Throwable {
here I wanna access the meta info in the FactoryBean class
}
}