我目前正在构建一个 Spring Boot 应用程序,它需要使用三种不同的数据库环境并以与环境无关的方式运行。
“dev”环境将使用本地 sqlite 数据库。
“uat”环境将使用 postgres 数据库。
“实时”环境将使用 sql 数据库。
在加载时,我的应用程序会检查环境参数是否存在:
如果没有设置或者环境参数是dev,那么它将创建一个本地sqlite数据库并在会话期间与其建立连接。
如果它设置为uat,那么将建立到heroku postgres 数据库的连接。
如果设置为 live,则将建立到 mysql 数据库的连接。
现在我目前正在努力在 Java 上将其概念化。
这是我到目前为止编写的代码,我在其中获取环境参数。除此之外,我不确定要做什么。
@SpringBootApplication
public class Launcher implements CommandLineRunner {
public static void main(String args[]) {
SpringApplication.run(Launcher.class, args);
}
@Override
public void run(String... args) throws Exception {
String currentEnvironment = System.getenv("CURRENT_ENV");
// if current env is null or dev, set up sqlite database (if it doesnt already exist and use this for the remainder of the session
// if uat connect to heroku postgres db
// if live then connect to mysql db
}
}
相关分类