Sobes.tech
Junior — Middle
151

¿Cómo garantizar en Spring que solo se cree una instancia de DataSource al iniciar la aplicación, incluso si hay varias?

Empresas donde se preguntó
SimbirsoftSimbirsoft

Respuesta de la IA

sobes.tech AI

В Spring для обеспечения создания только одного экземпляра DataSource при запуске приложения можно использовать следующие подходы:

  1. Singleton Bean по умолчанию: По умолчанию Spring создает бины с синглтон-скоупом, поэтому если DataSource объявлен как бин, он будет единственным экземпляром.

  2. Конфигурация через @Configuration и @Bean:

@Configuration
public class DataSourceConfig {
    @Bean
    public DataSource dataSource() {
        // Создание и настройка DataSource
        return new HikariDataSource();
    }
}
  1. Избегать дублирующих конфигураций: Если в проекте несколько конфигураций создают DataSource, нужно объединить их или использовать профили (@Profile), чтобы активировался только один.

  2. Использование @Primary: Если есть несколько бинов DataSource, можно пометить один как @Primary, чтобы Spring выбирал его по умолчанию.

  3. Проверка автоконфигурации: В Spring Boot можно отключить автоконфигурацию DataSource, если создаете бин вручную, чтобы избежать создания нескольких экземпляров.

Таким образом, правильная конфигурация и управление скоупом бинов обеспечивают создание единственного экземпляра DataSource.