Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article explains how to implement handling and validation of common parameter into the Policy Framework Components using Spring boot framework.

Environment

A component can use org.springframework.core.env.Environment component directly.

...

Code Block
languagejava
@Component
@RequiredArgsConstructor
public class Example {

private Environment env;
....

public void method(String pathPropertyName) {
    .....  
    String path = env.getProperty(pathPropertyName);
    .....
}

Annotation-based Spring configuration

All annotation-based Spring configurations support the Spring Expression Language (SpEL), a powerful expression language that supports querying and manipulating an object graph at runtime. 
A documentation about SpEL could be found here: https://docs.spring.io/spring-framework/docs/3.0.x/reference/expressions.html.

A component can use org.springframework.beans.factory.annotation.Value, which reads from properties, performs a type conversion and injects the value into the filed. There is not error checking, but it can assign default value if the property is not defined.

Code Block
languagejava
    @Value("${security.enable-csrf:true}")
    private boolean csrfEnabled = true;


Other approach using property The code below shows how to inject a value of a property into @Schedule configuration.

Code Block
languagejava
    @Scheduled(
            fixedRateString = "${runtime.participantParameters.heartBeatMs}",
            initialDelayString = "${runtime.participantParameters.heartBeatMs}")
    public void schedule() { 
}

ConfigurationProperties

@ConfigurationProperties can be used to map values from .properties( .yml also supported) to a POJO. It performs all type conversion and error checking using validation javax.validation.constraints

...