@Override
    public ExecuteContext before(ExecuteContext context) {
        Object[] arguments = context.getArguments();
        Object providerUrl = arguments[0];
        if (providerUrl instanceof InstanceAddressURL) {
            InstanceAddressURL url = (InstanceAddressURL) providerUrl;
            String application = "";
            if (url.getInstance() != null) {
                application = url.getInstance().getServiceName();
            }

            // 保存接口与服务名之间的映射
            DubboCache.INSTANCE.putApplication(DubboReflectUtils.getServiceInterface(arguments[0]), application);
            if (isInitialized.compareAndSet(false, true)) {
                invokerRuleStrategyService.builedDubbo3RuleStrategy(new Dubbo3InstanceMapper());
            }
        }
        return context;
    }
@Test
    public void testBefore() {
        Object[] arguments = new Object[1];
        arguments[0] = instanceAddressURL;
        ExecuteContext context = ExecuteContext.forMemberMethod(new Object(), null,
                arguments, null, null);
        interceptor.before(context);
        Assert.assertEquals(SERVICE_NAME, DubboCache.INSTANCE.getApplication(SERVICE_INTERFACE));
    }