🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 优快云🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页
🌟 一、Java配置
首先创建一个 DataSource 类:
public class DataSource {
private String username;
private String password;
private String url;
@Override
public String toString() {
return "DataSource{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", url='" + url + '\'' +
'}';
}
}
向 Spring 容器中注册多个 DataSource,并且在注册的时候设置 Profile,只有当条件满足的时候,才向 Spring 容器中注册相应的 Bean,否则不注册
public class JavaConfig {
@Bean
@Profile("dev")
DataSource devDataSource(){
DataSource dev = new DataSource();
dev.setUsername("dev");
dev.setPassword("dev");
dev.setUrl("jdbc:mysql:3306/dev");
return dev;
}
@Bean
@Profile("prod")
DataSource prodDataSource(){
DataSource prod = new DataSource();
prod.setUsername("prod");
prod.setPassword("prod");
prod.setUrl("jdbc:mysql:3306/prod");
return prod;
}
}
这里到底向 Spring 容器中注册多少个 DataSource,主要还是看条件是否满足,如果有多个条件满足,那么就注册多个 DataSource 实例到 Spring 容器中,否则就不注册。
最后,启动容器:
public static void main(String[] args) {
//这里注意,不能添加配置类,如果添加了配置类,则 refresh 方法会被调用,而 Spring 容器的初始化则正是从这里开始的
//此时,我们还没设置当前系统环境
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
//这里注意,不能添加配置类,如果添加了配置类,则 refresh 方法会被调用,而 Spring 容器的初始化则正是从这里开始的
//此时,我们还没设置当前系统环境
ConfigurableEnvironment evn = ctx.getEnvironment();
evn.setActiveProfiles("prod");
//此时再去设置配置类
ctx.register

本文详细介绍了如何在Spring框架中使用Java和XML配置文件实现环境(如dev和prod)下的多数据源切换,以及自定义Profile的条件注解方法。
最低0.47元/天 解锁文章
4万+

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



