Встречается на собеседованиях • сегодня

Как управлять выбором между локальным и удаленным DataSource в Spring-приложении

Для управления выбором между локальным и удаленным DataSource в Spring можно использовать профили (@Profile) или условные бины (@Conditional).

Пример с профилями:

java
@Configuration
public class DataSourceConfig {

    @Bean
    @Profile("local")
    public DataSource localDataSource() {
        return DataSourceBuilder.create()
            .url("jdbc:h2:mem:localdb")
            .username("sa")
            .build();
    }
text
@Bean
@Profile("remote")
public DataSource remoteDataSource() {
    return DataSourceBuilder.create()
        .url("jdbc:mysql://remote-host:3306/db")
        .username("user")
        .password("pass")
        .build();
}

}

text

**Активация профиля:**  
Через `application.properties`:  
```properties
spring.profiles.active=local

Или через JVM-параметр:

bash
-Dspring.profiles.active=remote

Альтернатива: можно использовать @ConditionalOnProperty для более гибкого управления.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы