TradeShardingProperties.java
package com.ecommerce.trade.infrastructure.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
@ConfigurationProperties(prefix = "ecommerce.trade.sharding")
public class TradeShardingProperties {
private boolean enabled;
private boolean sqlShow;
private Duration connectionTimeout = Duration.ofSeconds(5);
private int maximumPoolSize = 8;
private int minimumIdle;
private List<Shard> shards = new ArrayList<>();
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isSqlShow() {
return sqlShow;
}
public void setSqlShow(boolean sqlShow) {
this.sqlShow = sqlShow;
}
public Duration getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(Duration connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public int getMaximumPoolSize() {
return maximumPoolSize;
}
public void setMaximumPoolSize(int maximumPoolSize) {
this.maximumPoolSize = maximumPoolSize;
}
public int getMinimumIdle() {
return minimumIdle;
}
public void setMinimumIdle(int minimumIdle) {
this.minimumIdle = minimumIdle;
}
public List<Shard> getShards() {
return List.copyOf(shards);
}
public void setShards(List<Shard> shards) {
this.shards = shards == null ? new ArrayList<>() : new ArrayList<>(shards);
}
public static class Shard {
private String name;
private String driverClassName = "com.mysql.cj.jdbc.Driver";
private String jdbcUrl;
private String username;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getJdbcUrl() {
return jdbcUrl;
}
public void setJdbcUrl(String jdbcUrl) {
this.jdbcUrl = jdbcUrl;
}
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;
}
}
}