How to active Profiles in Spring

Activate different profiles in different environments

1. Use @Profile on a Bean

# a bean only active during development but not deployed in production
@Component
@Profile("dev")
public class DevDatasourceConfig

# the component is activated only if dev profile is not active:
@Component
@Profile("!dev")
public class DevDatasourceConfig

# Profiles can also be configured in XML.
<beans profile="dev">
    <bean id="devDatasourceConfig" class="org.baeldung.profiles.DevDatasourceConfig" />
</beans>

2.The Default Profile

Spring also provides a way to set the default profile when no other profile is active — by using the spring.profiles.default property.

Example: Separate Data Source Configurations Using Profiles

# Consider a scenario :
# We have to maintain the data source configuration for both the development and production environments.
public interface DatasourceConfig {
    public void setup();
}

@Component
@Profile("dev")
public class DevDatasourceConfig implements DatasourceConfig {
    @Override
    public void setup() {
        System.out.println("Setting up datasource for DEV environment. ");
    }
}

@Component
@Profile("production")
public class ProductionDatasourceConfig implements DatasourceConfig {
    @Override
    public void setup() {
       System.out.println("Setting up datasource for PRODUCTION environment. ");
    }
}

public class SpringProfilesWithMavenPropertiesIntegrationTest {
    @Autowired
    DatasourceConfig datasourceConfig;

    public void setupDatasource() {
        datasourceConfig.setup();
    }
}

# When the dev profile is active
Setting up datasource for DEV environment.

参考:Spring Profiles

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值