Spring Boot Applications - excelsior-oss/excelsior-jet-maven-plugin GitHub Wiki
The plugin enables you to compile Spring Boot applications down to native binaries using Excelsior JET. Compared to running your application on a conventional JVM, this has the following benefits:
-
More predictable latency for your Web application, as no code de-optimizations may occur suddenly at run time
-
Better startup time, which may be important if you need to launch a multitude of microservices upon updating your distributed application
-
Better initial performance that remains stable later on, which can be important for load balancing inside an application cluster
-
Security and IP protection, as reverse engineering of sensitive application code becomes much more expensive and the exposure of yet unknown to you security vulnerabilities is reduced
Excelsior JET 15.3 supports Spring Boot versions from 1.4 and above.
To enable native compliation of your Spring Boot application, you need to copy and paste the following configuration into the <plugins> section of your pom.xml file:
<plugin>
<groupId>com.excelsiorjet</groupId>
<artifactId>excelsior-jet-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<appType>spring-boot</appType>
</configuration>
</plugin>You can launch your Spring Boot application on the Excelsior JET JVM using a JIT compiler
before pre-compiling it to native code using the
jet:testrun Mojo the same way
as with plain Java SE applications.
Use the jet:stop Mojo
to ensure correct application termination at the end of a Test Run.
Technically, you can terminate the application using Ctrl-C, but that would terminate the entire Maven build
and would not constitute a correct termination.
Profiling Spring Boot applications is supported via the jet:profile Mojo.
However, the same notice as for the Test Run applies: use the jet:stop Mojo
to ensure correct termination.