code: public static void executeGrailsBootstraps(GrailsApplication application, WebApplicationContext webContext,
              ServletContext servletContext, GrailsPluginManager grailsPluginManager) {
          configureServletContextAttributes(
                  servletContext,
                  application,
                  grailsPluginManager,
                  webContext
          );
  
          PersistenceContextInterceptor interceptor = null;
          String[] beanNames = webContext.getBeanNamesForType(PersistenceContextInterceptor.class);
          if (beanNames.length > 0) {
              interceptor = (PersistenceContextInterceptor)webContext.getBean(beanNames[0]);
          }
  
          if (interceptor != null) {
              interceptor.init();
          }
          // init the Grails application
          try {
              GrailsClass[] bootstraps = application.getArtefacts(BootstrapArtefactHandler.TYPE);
              for (GrailsClass bootstrap : bootstraps) {
                  final GrailsBootstrapClass bootstrapClass = (GrailsBootstrapClass) bootstrap;
                  final Object instance = bootstrapClass.getReferenceInstance();
                  webContext.getAutowireCapableBeanFactory().autowireBeanProperties(
                          instance, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
                  bootstrapClass.callInit(servletContext);
              }
              if (interceptor != null) {
                  interceptor.flush();
              }
          }
          finally {
              if (interceptor != null) {
                  interceptor.destroy();
              }
          }
      }
docs: Executes Grails bootstrap classes
  
  @param application The Grails ApplicationContext instance
  @param webContext The WebApplicationContext instance
  @param servletContext The ServletContext instance