在Spring中,可以使用多個數(shù)據(jù)源來連接多個數(shù)據(jù)庫。下面是一些步驟:
在application.properties
或application.yml
文件中配置多個數(shù)據(jù)源的連接信息。例如,可以為每個數(shù)據(jù)源定義不同的datasource.url
、datasource.username
和datasource.password
等屬性。
創(chuàng)建多個數(shù)據(jù)源的配置類??梢詣?chuàng)建多個DataSource
的bean,每個bean對應(yīng)一個數(shù)據(jù)源??梢允褂?code>@Configuration注解來標(biāo)記該類。
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "datasource1")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource2")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
}
注意:@ConfigurationProperties
注解可以從application.properties
或application.yml
文件中讀取以prefix
開頭的屬性值,并自動裝配到對應(yīng)的bean中。
@Mapper
注解的接口中使用@Qualifier
注解指定使用哪個數(shù)據(jù)源。例如:@Mapper
public interface UserMapper {
@Qualifier("dataSource1")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource1();
@Qualifier("dataSource2")
@Select("SELECT * FROM user")
List<User> getUsersFromDataSource2();
}
@Service
注解的服務(wù)類中注入UserMapper
接口,并調(diào)用相應(yīng)的方法即可。@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getUsersFromDataSource1() {
return userMapper.getUsersFromDataSource1();
}
public List<User> getUsersFromDataSource2() {
return userMapper.getUsersFromDataSource2();
}
}
這樣,就可以通過不同的數(shù)據(jù)源連接和操作多個數(shù)據(jù)庫了。