@Override
    public ExecuteContext doAfter(ExecuteContext context) {
        if (isHasMethodLoadSpringFactories()) {
            // 仅当在高版本采用LoadSpringFactories的方式注入, 高版本存在缓存会更加高效, 仅需注入一次
            if (IS_INJECTED.compareAndSet(false, true)) {
                injectConfigurations(context.getResult());
            }
        } else {
            final Object rawFactoryType = context.getArguments()[0];
            if (rawFactoryType instanceof Class) {
                final Class<?> factoryType = (Class<?>) rawFactoryType;
                injectConfigurationsWithLowVersion(context.getResult(), factoryType.getName());
            }
        }
        return context;
    }
@Test
    public void doAfterLowVersion() throws NoSuchMethodException, IllegalAccessException {
        // lowVersionTesting
        final SpringFactoriesInterceptor lowVersionInterceptor = new SpringFactoriesInterceptor();
        hasMethodLoadSpringFactoriesFiled.set(lowVersionInterceptor, Boolean.FALSE);
        ExecuteContext executeContext = ExecuteContext.forMemberMethod(this, this.getClass().getMethod("doAfterLowVersion"),
                new Object[]{org.springframework.boot.autoconfigure.EnableAutoConfiguration.class
                }, null, null);
        final List<String> lowResult = new ArrayList<>();
        executeContext.changeResult(lowResult);
        executeContext = lowVersionInterceptor.doAfter(executeContext);
        executeContext.changeArgs(new Object[]{org.springframework.cloud.bootstrap.BootstrapConfiguration.class
        });
        executeContext = lowVersionInterceptor.doAfter(executeContext);
        final List<String> injectResult = (List<String>) executeContext.getResult();
        Assert.assertTrue(injectResult.contains(PROPERTY_LOCATOR_CLASS) && injectResult.contains(EVENT_PUBLISHER_CLASS));
    }