package com.myoa.engineering.crawl.ppomppu.processor.configuration.properties; import com.myoa.engineering.crawl.ppomppu.support.util.ObjectUtil; import java.util.List; import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @Setter @Getter @ConfigurationProperties(prefix = "datasource") public class DatasourceProperties { private List units; @Getter @Setter public static class DataSourcePropertiesUnit { private String unitName; private String schemaName; private String connectionParameters; private String dbConnectionUrl; private Boolean simpleConnectionUrl; public String toCompletedJdbcUrl() { if (ObjectUtil.isEmpty(simpleConnectionUrl) || simpleConnectionUrl == false) { return String.format("%s/%s?%s", dbConnectionUrl, schemaName, connectionParameters); } return dbConnectionUrl; } } public DataSourcePropertiesUnit find(String unitName) { return units.stream() .filter(e -> e.getUnitName().equals(unitName)) .findFirst() .orElseThrow( () -> new IllegalArgumentException(this.getClass().getName() + ": unitName Not found. " + unitName)); } }