在Spring Boot中配置多個數據庫可以通過以下步驟完成:
1. 在`application.properties`或`application.yml`文件中配置數據源相關的屬性,如數據庫的URL、用戶名、密碼等。可以使用`spring.datasource`前綴來設置主數據源的屬性,使用自定義前綴來設置其他數據源的屬性。
例如,配置主數據源的屬性:
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. 創建多個數據源的配置類。在每個配置類中,通過`@ConfigurationProperties`注解將對應前綴的屬性綁定到數據源對象中。
例如,創建一個配置類用于配置第二個數據源:
@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
注解所標注的類)中注入多個數據源。
例如,在主配置類中注入主數據源和第二個數據源:
@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);
????} }
這樣,你就可以在項目中使用多個數據源了。你可以將@Primary
注解添加到主數據源的@Bean
方法上,以便在其他地方引用數據源時,自動使用主數據源。在需要使用其他數據源的地方,可以使用@Qualifier
注解指定要使用的數據源。
注意:如果使用JPA或MyBatis等ORM框架,你還需要配置對應的實體類和數據源的事務管理器等。