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 run directly inside the Java Virtual Machine (JVM). 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 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. 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: Only the dependencies defined in the Fuse BOM are supported by Red Hat.

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

1.2. Deploying into Spring Boot 2

In addition to Spring Boot 1, you also have the option of deploying into Spring Boot 2.

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.3. 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