@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 doAfterHighVersion() throws NoSuchMethodException, IllegalAccessException {
        final SpringFactoriesInterceptor interceptor = new SpringFactoriesInterceptor();
        hasMethodLoadSpringFactoriesFiled.set(interceptor, Boolean.TRUE);
        ExecuteContext executeContext = ExecuteContext.forMemberMethod(this, this.getClass().getMethod("doAfterHighVersion"),
                null, null, null);
        // highVersionTesting
        final Map<String, List<String>> cache = new HashMap<>();
        cache.put(BOOTSTRAP_FACTORY_NAME, new ArrayList<>());
        cache.put(ENABLE_AUTO_CONFIGURATION_FACTORY_NAME, new ArrayList<>());
        executeContext.changeResult(cache);
        executeContext = interceptor.doAfter(executeContext);
        final Map<String, List<String>> result = (Map<String, List<String>>) executeContext.getResult();
        Assert.assertTrue(result.get(BOOTSTRAP_FACTORY_NAME).contains(PROPERTY_LOCATOR_CLASS)
                && result.get(ENABLE_AUTO_CONFIGURATION_FACTORY_NAME).contains(EVENT_PUBLISHER_CLASS));
    }