Grails normally will run any *Bootstrap
classes at startup. A Bootstrap
class has a init
and destroy
closure. The init
closure is invoked during startup and destroy
when the application stops. The class name must end with Bootstrap
and be placed in the grails-app/init
folder. Since Grails 3.2 we can skip the execution of Bootstrap
classes by setting the Java system property grails.bootstrap.skip
with the value true
.
In the following example Bootstrap
class we simply add a println
to see the effect of using the system property grails.bootstrap.skip
:
// File: grails-app/init/mrhaki/Bootstrap.groovy package mrhaki class Bootstrap { def init = { servletContext -> println "Run Bootstrap" } def destroy = { } }
First we build the application and than start it from the generated WAR file:
$ gradle build ... :build BUILD SUCCESSFUL Total time: 22.235 secs $ java -jar build/libs/sample-app-0.1.war Run Bootstrap Grails application running at http://localhost:8080 in environment: production
Next we use the Java system property grails.bootstrap.skip
:
$ java -Dgrails.bootstrap.skip=true -jar build/libs/sample-app-0.1.war Grails application running at http://localhost:8080 in environment: production
Notice the println
statement from Bootstrap.groovy
is not invoked anymore.
Written with Grails 3.2.1