Ebean多数据源配置
在properties文件中:

代码:
@Configuration
@Slf4j
public class EbeanConfig {
@Value("${spring.datasource.url}")
String url;
@Value("${spring.datasource.username}")
String username;
@Value("${spring.datasource.password}")
String password;
@Value("${spring.datasource.bi.url}")
String biUrl;
@Value("${spring.datasource.bi.username}")
String biUsername;
@Value("${spring.datasource.bi.password}")
String biPassword;
@Value("${spring.datasource.bi.driver-class-name}")
String biDriver;
@Value("${spring.tddl.app}")
String appName;
@Value("${spring.tddl.sharding}")
Boolean sharding;
@Value("${spring.datasource.ri.url}")
String riUrl;
@Value("${spring.datasource.ri.username}")
String riUsername;
@Value("${spring.datasource.ri.password}")
String riPassword;
@Resource
private KeyCenterUtil KeyCenterUtil;
@Bean
public EbeanServer setupEbeanServer() {
ServerConfig config = PgServerConfig.config(url, username, password);
config.setName("rds-pg-env");
config.setPersistBatchSize(100);
config.setLazyLoadBatchSize(100);
log.info("数据库秘钥名={}", biPassword);
String password = KeyCenterUtil.decrypt(biPassword);
String riPwd = DesUtil.decrypt(riPassword);
log.info("数据库密码={}", password);
ServerConfig biConfig = MysqlServerConfig.config(biUrl, biUsername, password, biDriver);
biConfig.setName("bi-mysql");
biConfig.setPersistBatchSize(100);
biConfig.setLazyLoadBatchSize(100);
EbeanServerFactory.create(biConfig);
ServerConfig tddlConfig = TddlServerConfig.config(appName, sharding, biDriver);
tddlConfig.setName("tddl-mysql");
tddlConfig.setPersistBatchSize(100);
tddlConfig.setLazyLoadBatchSize(100);
EbeanServerFactory.create(tddlConfig);
// ServerConfig riConfig = MysqlServerConfig.config(riUrl, riUsername, riPwd, biDriver);
// riConfig.setName("ri-mysql");
// riConfig.setPersistBatchSize(100);
// riConfig.setLazyLoadBatchSize(100);
// EbeanServerFactory.create(riConfig);
return EbeanServerFactory.create(config);
}
}
@UtilityClass
public class PgServerConfig {
public static ServerConfig config(String url, String username, String password) {
ServerConfig config = new ServerConfig();
config.setDefaultServer(true);//使用默认数据库
//config.setDataTimeZone(""); //TODO 时区问题如何考虑
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl(url);
dataSourceConfig.setUsername(username);
dataSourceConfig.setPassword(password);
dataSourceConfig.setDriver("org.postgresql.Driver");
dataSourceConfig.setMaxConnections(3000);
config.setDataSourceConfig(dataSourceConfig);
return config;
}
}
@UtilityClass
public class MysqlServerConfig {
public static ServerConfig config(String url, String username, String password,String driver) {
ServerConfig config = new ServerConfig();
config.setDefaultServer(false);
//config.setDataTimeZone(""); //TODO 时区问题如何考虑
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl(url);
dataSourceConfig.setUsername(username);
dataSourceConfig.setPassword(password);
dataSourceConfig.setDriver(driver);
config.setDataSourceConfig(dataSourceConfig);
return config;
}
}
默认情况下不用指定server,当需要特定数据库时需要指定server:


本文介绍了如何在SpringBoot应用中使用Ebean进行多数据源配置。重点在于properties文件中的设置,通常默认无需指定数据库服务器,但在特定场景下需要明确指定server。
1938

被折叠的 条评论
为什么被折叠?



