Spring Boot support
Spring Boot is a framework to create stand-alone, production-grade Spring based applications very easily, thanks to its convention over configuration mechanism that allows Spring Boot to pre-configure applications in an opinionated way whenever possible.
All of this auto-configuration is driven by the concept of starters and conditional annotations that Spring Boot provides.
A starter is basically a dependency descriptor that you can use in your application in order to add all the related dependencies involved in a technology with a minimal specification. Additionally, a starter typically contains auto-configuration classes. Auto-configuration instantiates a default set of Spring beans that implement the functionality of the starter module depending on corresponding configuration properties found on the classpath. All beans can be overridden in case the default is not sufficient.
IPF provides Spring Boot starter modules for bootstrapping basic IPF infrastructure such as mapping as well as for HL7- or IHE-related components. The IPF starter modules also depend on Camel Spring Boot, which sets up a configurable Camel infrastructure for your project.
Dependencies on the IPF starter modules are established through regular Maven dependencies, e.g. for the IHE XDS starter:
<dependency>
<groupId>org.openehealth.ipf.boot</groupId>
<artifactId>ipf-xds-spring-boot-starter</artifactId>
</dependency>
Apart from ipf-spring-boot-starter
, the available starter modules are:
Starter module | Purpose |
---|---|
ipf-atna-spring-boot-starter | set up ATNA infrastructure |
ipf-hl7-spring-boot-starter | for HL7v2/MLLP-based IHE transactions |
ipf-hl7v3-spring-boot-starter | for HL7v3/SOAP-based IHE transactions |
ipf-xds-spring-boot-starter | for XDS/SOAP-based IHE transactions |
ipf-fhir-spring-boot-starter | for FHIR/REST-based IHE transactions |
ipf-hpd-spring-boot-starter | for DSML/SOAP-based IHE transactions |
These IPF starter modules transitively depend on ipf-spring-boot-starter
, so there is no need to explicitly
depend on this module.
IPF 3.7 removed this dependency for ipf-atna-spring-boot-starter
.
ipf-spring-boot-starter
auto-configures org.openehealth.ipf.commons.spring.map.SpringBidiMappingService
and provides
Spring beans for picking up any org.openehealth.ipf.commons.map.config.CustomMappings
.
See here for details on Custom Mappings.
The starter further sets up a bean of type org.openehealth.ipf.commons.core.config.SpringRegistry
.
In addition, if the properties server.ssl.enabled
and ipf.commons.reuse-ssl-config
are set to true
, a bean of type org.apache.camel.support.jsse.SSLContextParameters
with name bootSslContextParameters
is provided, so you can reuse the Spring Boot security configuration for FHIR, MLLP and Web Service IHE transaction endpoints supported by IPF.
ipf-spring-boot-starter
provides the following application properties:
Property (ipf.commons. ) |
Default | Description |
---|---|---|
reuse-ssl-config |
false | Whether to set up a bootSslContextParameters bean derived from Spring Boot SSL settings |