当前位置:首页>开发>正文

springboot怎么配置多个数据源

2024-08-02 03:09:32 互联网 未知 开发

springboot怎么配置多个数据源?

springboot怎么配置多个数据源

Spring Boot支持在同一个应用程序中使用多个数据源。下面是通过配置多个数据源的步骤:


1.在 application.properties文件中,配置第一个数据源:


spring.datasource.url=jdbc:mysql://localhost:3306/first_db

spring.datasource.username=root

spring.datasource.password=password

spring.datasource.driver-class-name=com.mysql.jdbc.Driver


2.为第二个数据源创建新的配置类,例如 SecondDataSourceConfig.java:


@Configuration

@PropertySource("classpath:application.properties")

@EnableTransactionManagement

public class SecondDataSourceConfig {


  @Autowired

  private Environment env


  @Bean

  public DataSource secondDataSource() {

    DriverManagerDataSource dataSource = new DriverManagerDataSource()

    dataSource.setDriverClassName(env.getProperty("spring.second-datasource.driver-class-name"))

    dataSource.setUrl(env.getProperty("spring.second-datasource.url"))

    dataSource.setUsername(env.getProperty("spring.second-datasource.username"))

    dataSource.setPassword(env.getProperty("spring.second-datasource.password"))


    return dataSource

  }


  @Bean

  public LocalContainerEntityManagerFactoryBean secondEntityManagerFactory() {

    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean()

    em.setDataSource(secondDataSource())

    em.setPackagesToScan("com.example.second_db.entity")


    JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter()

    em.setJpaVendorAdapter(vendorAdapter)

    em.setJpaProperties(additionalProperties())


    return em

  }


  @Bean

  public PlatformTransactionManager secondTransactionManager() {

    JpaTransactionManager transactionManager = new JpaTransactionManager()

    transactionManager.setEntityManagerFactory(secondEntityManagerFactory().getObject())

    return transactionManager

  }


  private Properties additionalProperties() {

    Properties properties = new Properties()

    properties.setProperty("hibernate.hbm2ddl.auto", "update")

    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect")


    return properties

  }

}


3.在 application.properties中,为第二个数据源添加配置:


spring.second-datasource.url=jdbc:mysql://localhost:3306/second_db

spring.second-datasource.username=root

spring.second-datasource.password=password

spring.second-datasource.driver-class-name=com.mysql.jdbc.Driver


4.在需要使用第二个数据源的地方,使用 @Qualifier`注解显式指定数据源:


@Service

public class SomeService {

    

    @Autowired

    @Qualifier("secondEntityManagerFactory")

    private EntityManagerFactory secondEntityManagerFactory

    

    // ...

}


这样,您就可以在同一应用程序中配置多个数据源了。

答:springboot配置多个数据源的操作步骤如下:1. 首先在日常开发中我们都是以单个数据库进行开发,在小型项目中是完全能够满足需求的。 但是,当我们牵扯到大型项目的时候,单个数据库。

2. 所需的资源 Spring boot Mybatis-plus Alibab Druid数据库连接池 MySql 数据库。