025 使用@Profile完成环境条件注入

Posted 最爱五仁月饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了025 使用@Profile完成环境条件注入相关的知识,希望对你有一定的参考价值。

一 . 概述

在之前我们说过@Conditional注解可以帮助我们实现条件的Bean的注册,但有时候却不是很方便.

如我们在生产和测试环境是不同的,因此我们需要一个能够根据环境注入Bean的方式.

@Profile注解就能帮助我们实现这个功能.


 二 . 测试 

配置类:

@Configuration
public class ProfileConfig {
    
    @Bean("value")
    @Profile("test")
    public String test() {
        return "test";
    }
    
    @Bean
    @Profile("dev")
    public String dev() {
        return "dev";
    }
}

我们在test环境下会注入一个test的Bean,而在dev环境下会注入一个dev的Bean.

测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= {ProfileConfig.class})
public class ProfileTest {
    @Autowired
    @Qualifier("value")
    private String value;
    
    @Test
    public void test() {
        System.out.println(value);
    }
}

我们使用系统的环境变量,现在使用的环境是test环境.

spring会根据我们制定的系统运行参数注入不同的Bean.

 

以上是关于025 使用@Profile完成环境条件注入的主要内容,如果未能解决你的问题,请参考以下文章

关于@Profile@Conditional@Primary@Qualifier及@Scope等实现高级装配的spring注解

001profile条件化创建bean

2023年中职网络安全技能竞赛网页渗透(注入版)

Spring源码窥探之:@Profile

Spring5 环境配置之profile

在eclipse激活maven profile配置