【Spring】多环境切换

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

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 优快云🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页



🌟 一、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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值