Chapter 1. Getting Started with Spring Boot standalone

1.1. About Spring Boot standalone deployment mode

In standalone deployment mode, a Spring Boot application is packaged as a Jar file and runs directly inside the Java Virtual Machine (JVM). That is, the Spring Boot application can be run directly using the java command with the -jar option — for example:

java -jar SpringBootApplication.jar

Where Spring Boot provides the main class for the executable Jar.

This approach to packaging and running the application is consistent with the microservices philosophy, where a service is packaged with the minimum set of requirements. The container is also minimal, being just the JVM itself.

The following elements are required for building a Spring Boot standalone application in Fuse:

  • The Fuse Bill of Materials (BOM) — defines a carefully curated set of dependencies from the Red Hat Maven repository. The BOM exploits Maven’s dependency management mechanism to define the appropriate versions of Maven dependencies.

    Note that only dependencies defined in the Fuse BOM are supported by Red Hat.

  • The Spring Boot Maven Plug-In — implements the build process for a standalone Spring Boot application in Maven. This plug-in is responsible for packaging your Spring Boot application as an executable Jar file.

1.1.1. Deploying into Spring Boot 2

Currently, Spring Boot 2 is not supported on OpenShift.

Note

For details about the OpenShift mode of deployment, see the Fuse on OpenShift Guide.

Note

For more information on all of the differences between Spring Boot 1 and Spring Boot 2, see Spring Boot’s Migration Guide and Spring Boot 2 Release Notes.

1.1.1.1. New Camel Components for Spring Boot 2

Spring Boot 2 supports Camel version 2.23 and thus supports some new camel components that are not available for Spring Boot 1:

New Camel Components for Spring Boot 2

  • as2-component
  • aws-iam-component
  • fhir-component
  • google-calendar-stream-component
  • google-mail-stream-component
  • google-sheets-component
  • google-sheets-stream-component
  • ipfs-component
  • kubernetes-hpa-component
  • kubernetes-job-component
  • micrometer-component
  • mybatis-bean-component
  • nsq-component
  • rxjava2
  • service-component
  • spring-cloud-consul
  • spring-cloud-zookeeper
  • testcontainers-spring
  • testcontainers
  • web3j-component