@Override
        public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
            final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);

            final InstrumentMethod doGet = target.getDeclaredMethod("doGet", "javax.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletResponse");
            final InstrumentMethod doPost = target.getDeclaredMethod("doPost", "javax.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletResponse");
            if (doGet != null) {
                doGet.addInterceptor(BasicMethodInterceptor.class, va(SpringWebMvcConstants.SPRING_MVC));
            }
            if (doPost != null) {
                doPost.addInterceptor(BasicMethodInterceptor.class, va(SpringWebMvcConstants.SPRING_MVC));
            }

            // Spring 6
            final InstrumentMethod doGetJakarta = target.getDeclaredMethod("doGet", "jakarta.servlet.http.HttpServletRequest", "jakarta.servlet.http.HttpServletResponse");
            final InstrumentMethod doPostJakarta = target.getDeclaredMethod("doPost", "jakarta.servlet.http.HttpServletRequest", "jakarta.servlet.http.HttpServletResponse");
            if (doGetJakarta != null) {
                doGetJakarta.addInterceptor(BasicMethodInterceptor.class, va(SpringWebMvcConstants.SPRING_MVC));
            }
            if (doPostJakarta != null) {
                doPostJakarta.addInterceptor(BasicMethodInterceptor.class, va(SpringWebMvcConstants.SPRING_MVC));
            }

            if (this.uriStatEnable) {
                final InstrumentMethod processRequest = target.getDeclaredMethod("processRequest", "javax.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletResponse");
                if (processRequest != null) {
                    processRequest.addInterceptor(ProcessRequestInterceptor.class, va(this.uriStatUseUserInput));
                }

                // Spring 6
                final InstrumentMethod processRequestJakarta = target.getDeclaredMethod("processRequest", "jakarta.servlet.http.HttpServletRequest", "jakarta.servlet.http.HttpServletResponse");
                if (processRequestJakarta != null) {
                    processRequestJakarta.addInterceptor(com.navercorp.pinpoint.plugin.spring.web.jakarta.interceptor.ProcessRequestInterceptor.class, va(this.uriStatUseUserInput));
                }
            }

            return target.toBytecode();
        }
@author Jongho Moon
@author jaehong.kim
agent-module/plugins/spring/src/main/java/com/navercorp/pinpoint/plugin/spring/web/SpringWebMvcPlugin.java