I have a application.properties:
app.cert.identity.subject.organizationalUnit=test
app.cert.identity.subject.O=Pacific College
And an DTO:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
@ConfigurationProperties(prefix = "app.cert.identity")
public class IdentityCertificateDefinition {
@NestedConfigurationProperty
private Subject subject;
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public static class Subject {
private String organizationalUnit; //Does work
@Value("${O}") //Does NOT work, will be null
private String organization;
public String getOrganizationalUnit() {
return organizationalUnit;
}
public void setOrganizationalUnit(String organizationalUnit) {
this.organizationalUnit = organizationalUnit;
}
public String getOrganization() {
return organization;
}
public void setOrganization(String organization) {
this.organization = organization;
}
}
}
The `@Value("${O}") marked on does not work:
Comment From: wilkinsona
@Value and @ConfigurationProperties should not be mixed. If you remove @Value and change app.cert.identity.subject.O to app.cert.identity.subject.organization it should work. Alternatively, you could rename getOrganization and setOrganization to getO and setO.