溫馨提示×

springboot多數(shù)據(jù)庫怎么配置

小億
161
2023-12-11 14:34:11

在Spring Boot中配置多個數(shù)據(jù)庫可以通過以下步驟完成:

1. 在`application.properties`或`application.yml`文件中配置數(shù)據(jù)源相關(guān)的屬性,如數(shù)據(jù)庫的URL、用戶名、密碼等??梢允褂胉spring.datasource`前綴來設(shè)置主數(shù)據(jù)源的屬性,使用自定義前綴來設(shè)置其他數(shù)據(jù)源的屬性。
例如,配置主數(shù)據(jù)源的屬性:

spring.datasource.url=jdbc:mysql://localhost:3306/maindb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2. 創(chuàng)建多個數(shù)據(jù)源的配置類。在每個配置類中,通過`@ConfigurationProperties`注解將對應(yīng)前綴的屬性綁定到數(shù)據(jù)源對象中。
例如,創(chuàng)建一個配置類用于配置第二個數(shù)據(jù)源:

@Configuration
@ConfigurationProperties(prefix = "spring.datasource.secondary")
public class SecondaryDataSourceConfig {

????private?String?url;

????private?String?username;

????private?String?password;

????private?String?driverClassName;

????//?getter?and?setter?methods

????@Bean

????public?DataSource?secondaryDataSource()?{

????????DriverManagerDataSource?dataSource?=?new?DriverManagerDataSource();

????????dataSource.setUrl(url);

????????dataSource.setUsername(username);

????????dataSource.setPassword(password);

????????dataSource.setDriverClassName(driverClassName);

????????return?dataSource;

????}

????//?additional?configuration?for?secondary?data?source }

3. 在主配置類(如@SpringBootApplication注解所標注的類)中注入多個數(shù)據(jù)源。
例如,在主配置類中注入主數(shù)據(jù)源和第二個數(shù)據(jù)源:

@SpringBootApplication
public?class?Application?{

????@Autowired

????private?DataSource?primaryDataSource;

????@Autowired

????private?DataSource?secondaryDataSource;

????//?additional?configuration

????public?static?void?main(String[]?args)?{

????????SpringApplication.run(Application.class,?args);

????} }

這樣,你就可以在項目中使用多個數(shù)據(jù)源了。你可以將@Primary注解添加到主數(shù)據(jù)源的@Bean方法上,以便在其他地方引用數(shù)據(jù)源時,自動使用主數(shù)據(jù)源。在需要使用其他數(shù)據(jù)源的地方,可以使用@Qualifier注解指定要使用的數(shù)據(jù)源。
注意:如果使用JPA或MyBatis等ORM框架,你還需要配置對應(yīng)的實體類和數(shù)據(jù)源的事務(wù)管理器等。

0