@Override
    public void setup(ProfilerPluginSetupContext context) {
        SpringWebMvcConfig config = new SpringWebMvcConfig(context.getConfig());
        if (Boolean.FALSE == config.isEnable()) {
            logger.info("{} disabled", this.getClass().getSimpleName());
            return;
        }

        transformTemplate.transform("org.springframework.web.servlet.FrameworkServlet", FrameworkServletTransform.class, TransformCallbackParametersBuilder.newBuilder()
                .addBoolean(config.isUriStatEnable())
                .addBoolean(config.isUriStatUseUserInput())
                .build());

        // Async
        transformTemplate.transform("org.springframework.web.method.support.InvocableHandlerMethod", InvocableHandlerMethodTransform.class);

        // uri stat
        if (config.isUriStatEnable()) {
            TransformCallbackParameters parameters = TransformCallbackParametersBuilder.newBuilder()
                    .addBoolean(config.isUriStatCollectMethod())
                    .build();
            transformTemplate.transform("org.springframework.web.servlet.handler.AbstractHandlerMethodMapping", AbstractHandlerMethodMappingTransform.class, parameters);
            transformTemplate.transform("org.springframework.web.servlet.handler.AbstractUrlHandlerMapping", AbstractUrlHandlerMappingTransform.class, parameters);
        }

    }
@author Jongho Moon
@author jaehong.kim
agent-module/plugins/spring/src/main/java/com/navercorp/pinpoint/plugin/spring/web/SpringWebMvcPlugin.java