overriding properties section and changing article module

This commit is contained in:
m.raheem
2020-02-16 14:57:46 +02:00
parent 7ad34458c9
commit 086adbd0c2
17 changed files with 481 additions and 0 deletions
@@ -0,0 +1,28 @@
package com.baeldung.boot.configurationproperties;
public class Credentials {
private String username;
private String password;
public Credentials(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
@@ -0,0 +1,16 @@
package com.baeldung.boot.configurationproperties;
import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
@Component
@ConfigurationPropertiesBinding
public class CustomCredentialsConverter implements Converter<String, Credentials> {
@Override
public Credentials convert(String source) {
String data[] = source.split(",");
return new Credentials(data[0], data[1]);
}
}
@@ -0,0 +1,59 @@
package com.baeldung.boot.configurationproperties;
import java.util.Map;
import javax.validation.Valid;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.validation.annotation.Validated;
@Configuration
@ConfigurationProperties(prefix = "validate")
@PropertySource("classpath:property-validation.properties")
@Validated
public class MailServer {
@NotNull
@NotEmpty
private Map<String, @NotBlank String> propertiesMap;
@Valid
private MailConfig mailConfig = new MailConfig();
public static class MailConfig {
@NotBlank
@Email
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
public Map<String, String> getPropertiesMap() {
return propertiesMap;
}
public void setPropertiesMap(Map<String, String> propertiesMap) {
this.propertiesMap = propertiesMap;
}
public MailConfig getMailConfig() {
return mailConfig;
}
public void setMailConfig(MailConfig mailConfig) {
this.mailConfig = mailConfig;
}
}
@@ -0,0 +1,67 @@
package com.baeldung.boot.configurationproperties;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.convert.DataSizeUnit;
import org.springframework.boot.convert.DurationUnit;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import org.springframework.util.unit.DataUnit;
@Configuration
@ConfigurationProperties(prefix = "server")
public class PropertyConversion {
private DataSize uploadSpeed;
@DataSizeUnit(DataUnit.GIGABYTES)
private DataSize downloadSpeed;
private Duration backupDay;
@DurationUnit(ChronoUnit.HOURS)
private Duration backupHour;
private Credentials credentials;
public Duration getBackupDay() {
return backupDay;
}
public void setBackupDay(Duration backupDay) {
this.backupDay = backupDay;
}
public Duration getBackupHour() {
return backupHour;
}
public void setBackupHour(Duration backupHour) {
this.backupHour = backupHour;
}
public DataSize getUploadSpeed() {
return uploadSpeed;
}
public void setUploadSpeed(DataSize uploadSpeed) {
this.uploadSpeed = uploadSpeed;
}
public DataSize getDownloadSpeed() {
return downloadSpeed;
}
public void setDownloadSpeed(DataSize downloadSpeed) {
this.downloadSpeed = downloadSpeed;
}
public Credentials getCredentials() {
return credentials;
}
public void setCredentials(Credentials credentials) {
this.credentials = credentials;
}
}
@@ -0,0 +1,43 @@
package com.baeldung.boot.configurationproperties;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
private Address address;
private Map<String, String> resourcesPath;
public static class Address {
private String ip;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Map<String, String> getResourcesPath() {
return resourcesPath;
}
public void setResourcesPath(Map<String, String> resourcesPath) {
this.resourcesPath = resourcesPath;
}
}
@@ -0,0 +1,15 @@
package com.baeldung.boot.configurationproperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ServerConfigFactory {
@Bean
@ConfigurationProperties(prefix = "server.default")
public ServerConfig getDefaultConfigs() {
return new ServerConfig();
}
}