springboot怎么配置多个数据源(spring boot配置多个data source)

springboot怎么配置多个数据源(spring boot配置多个data source)

首页维修大全综合更新时间:2024-08-06 21:31:08

springboot怎么配置多个数据源

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

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

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;

    

    // ...

}

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

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.