Spring注解--@Profile的使用

@Profile的作用:当容器根据标识激活对应的@Profile注解时,其所关联的bean类才会注册到容器。但容器不能或找不到对应的@Profile,就不生成bean实例。

创建配置类MainConfigOfProfile.java,生成bean方法yellow()被@Profile修饰,此注解被容器激活后,实例才会注册到容器。

@Configuration
public class MainConfigOfProfile{
//@Profile关联Yellow类,当容器激活此注解时,此bean才会注册到容器
	@Profile("test") 
	@Bean
	public Yellow yellow(){
		return new Yellow();
	}
	 
}

测试类:

容器以【test1】为标识,查找对应的@Profile,因标识不符【正确标识为test】,不能激活@Profile,故bean不能注册到容器。

运行出现错误。

public class IOCTest_Profile {
	@Test
	public void test01(){
		@SuppressWarnings("resource")
                //1.创建容器
		AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
		
		//2.设置需要激活对应的@Profile
		applicationContext.getEnvironment().setActiveProfiles("test1");
		//3.注册主配置类
		applicationContext.register(MainConfigOfProfile.class);
		//4.刷新容器
		applicationContext.refresh();
		Yellow yellow = applicationContext.getBean(Yellow.class);
		System.out.println(yellow);
	}
}

 

 运行结果出错,容器中找不到此实例。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值