Skip to main content
Version: 2.0.0

Configure

The CRUD Framework is designed to support:

  • Multiple datasources
  • Dynamic environment configurations
  • Centralized configuration management
  • Config Server integration
  • SAP HANA connectivity
  • Cloud Foundry deployment

Configuration Architecture

The CRUD Framework uses:

  • Spring Boot
  • Spring Config Server
  • SAP HANA Database
  • Environment-based datasource configuration
  • YAML metadata configuration

Configuration should be maintained in application.properties and externalized metadata (YAML) in the Config Server.

Enable Spring Refresh Endpoint

Add the following property:

management.endpoints.web.exposure.include=refresh

Purpose:

  • Enables runtime refresh of configurations
  • Allows config changes without restarting application

3. Configure Datasources

The CRUD Framework supports multiple datasource configurations. Use a list structure in application.properties:

.datasource.list[0].url=jdbc:...
.datasource.list[0].username=...
.datasource.list[0].password=...
.datasource.list[0].env=itm
.datasource.list[0].configpath=https://<config-server>/.../crud-named-objects-dev.yml

Configure SAP HANA Datasource

Example configuration:

datasource.list[0].url=jdbc:sap://<hana-host>:443?encrypt=true&validateCertificate=true&currentschema=CW-IWM-DEV
datasource.list[0].username=CW-IWM-DEV
datasource.list[0].password=<password>
datasource.list[0].env=itm
datasource.list[0].configpath=https://<config-server>/application/default/main/itm-java-dev-btp/crud-named-objects-dev.yml?useDefaultLabel

Datasource Parameters Explanation

ParameterDescription
urlSAP HANA JDBC URL
usernameDatabase schema username
passwordDatabase password
envEnvironment identifier
configpathExternal configuration path

Configure Multiple Environments

The framework supports multiple environments dynamically. Example:

datasource.list[0].env=itm
datasource.list[1].env=itm_qa
datasource.list[2].env=wf_dev_hana
datasource.list[3].env=ipm_dev

This enables:

  • DEV configuration
  • QA configuration
  • Customer-specific schemas
  • Multi-tenant support

Configure Config Server

The CRUD Framework fetches metadata and named object configurations from Spring Config Server.

Spring Config import example:

spring.config.import=optional:configserver:https://<config-server-url>

Example:

spring.config.import=optional:configserver:https://cherryworkproducts-config-server.cfapps.eu10-004.hana.ondemand.com

Configure Active Profiles

Profiles control which configurations are loaded.

spring.profiles.active=configDB,readYamlFromConfig

Profiles:

ProfilePurpose
configDBReads DB configurations from application.properties
readYamlFromConfigLoads YAML configs from Config Server (Azure)

Configure Application Properties

Example properties:

app.platform=SAP
valueSeparator=\^
batchSize=5000
fetchSize=5000
executorPoolSize=8
maximumPoolSize=10
minimumIdle=1
server.servlet.context-path=/crud
authorize-api=true
application-id=1784

Configuration Parameters Explanation

PropertyDescription
app.platformPlatform type
valueSeparatorMulti-value separator
batchSizeBatch processing size
fetchSizeFetch record size
executorPoolSizeThread pool size
maximumPoolSizeMax DB connections
minimumIdleMinimum idle connections
server.servlet.context-pathBase API context path
authorize-apiEnables authorization
application-idApplication identifier

Configure Logging

Example:

logging.level.org.hibernate.orm.connections.pooling=warn

Purpose:

  • Reduces unnecessary Hibernate connection logs
  • Keeps logs cleaner

Configure Date and Time Format

Example:

dateFormat=yyyy-MM-dd hh:mm:ss
timeFormat=yyyy-MM-dd hh:mm:ss

Used for:

  • Data parsing
  • API formatting
  • DB timestamp handling

Summary

The CRUD Framework configuration is fully dynamic and environment driven. It enables:

  • Multi-environment support
  • Centralized configuration management
  • Cloud-native deployments
  • Dynamic data source handling
  • Scalable enterprise integrations

Using proper configuration management ensures:

  • Easier maintenance
  • Faster deployments
  • Better scalability
  • Improved security
  • Runtime flexibility