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¤tschema=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
| Parameter | Description |
|---|---|
| url | SAP HANA JDBC URL |
| username | Database schema username |
| password | Database password |
| env | Environment identifier |
| configpath | External 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:
| Profile | Purpose |
|---|---|
| configDB | Reads DB configurations from application.properties |
| readYamlFromConfig | Loads 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
| Property | Description |
|---|---|
| app.platform | Platform type |
| valueSeparator | Multi-value separator |
| batchSize | Batch processing size |
| fetchSize | Fetch record size |
| executorPoolSize | Thread pool size |
| maximumPoolSize | Max DB connections |
| minimumIdle | Minimum idle connections |
| server.servlet.context-path | Base API context path |
| authorize-api | Enables authorization |
| application-id | Application 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