Verwendung von Konfigurationseigenschaften in @Configuration-KlassenJava

Java-Forum
Anonymous
 Verwendung von Konfigurationseigenschaften in @Configuration-Klassen

Post by Anonymous »

Wird erwartet, dass Konfigurationseigenschaftenklassen innerhalb von @Configuration-Klassen verwendbar sind.

Umgebung
  • Spring Boot 2.0.2
  • Java-Version „10.0.1“ 2018-04-17
    Java(TM) SE Runtime Environment 18.3 (Build 10.0.1+10),
    Java HotSpot(TM) 64-Bit Server VM 18.3 (Build 10.0.1+10, gemischter Modus)
  • OSX 10.13.4
My Code

application-local.properties:

Code: Select all

s3.bucketName=test-bucket
Konfigurationseigenschaften

Code: Select all

@Validated
@ConfigurationProperties(prefix = "s3")
public class S3ConfigurationProperties {

@NotBlank
private String bucketName;

public String getBucketName() {
return bucketName;
}

public void setBucketName(final String bucketName) {
this.bucketName = bucketName;
}
}
Konfigurationsklasse

Code: Select all

@Configuration
@Profile("local")
@EnableConfigurationProperties(S3ConfigurationProperties.class)
public class LocalS3Configuration {

@Autowired
private S3ConfigurationProperties properties;

@Value("${s3.bucketName}")
private String bucket;

@Bean(destroyMethod = "shutdown")
public AmazonS3 amazonS3(@Value("${local.s3.endpoint}") final String s3Endpoint, @Value("${s3.bucketName}") final String bucketName) {
// use properties...
final String bucketInjectedToMethod = bucketName; // works
final String bucketInjectedViaProperties = properties.getBucketName(); // null
final String bucketInjectedInClass = bucket; // null

}

}
Beobachtetes Verhalten

Wenn ich die S3ConfigurationProperties als Feld in die Konfigurationsklasse oder als Argument in die amazonS3-Methode einfüge, ist die Instanz ungleich Null, aber die darin enthaltene Eigenschaft „bucketName ist null.

Das Einfügen der Zeichenfolge in die Klasse über @Value ist ebenfalls null.

Die einzige Möglichkeit, es zum Laufen zu bringen, besteht darin, das als @Value annotierte Methodenargument mit einer Zeichenfolge zu verwenden.

Ist das erwartetes Verhalten oder möglicherweise ein Fehler?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post