通过动态代理对象访问FactoryBean的属性

时间:2018-09-09 08:51:47

标签: java spring rpc

在我的项目中,有一个第三方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
    }
}

0 个答案:

没有答案