一、配置文件
.properties中添加两个数据源的配置信息,如下所示:
“`properties
#第一个数据源geysqlicodecoding=utf8&useSSL=falsegeame=rootge.password=rootgeameysql.jdbc.Driver
#第二个数据源gysqlicodecoding=utf8&useSSL=falsegame=rootg.datasource.two.password=rootgameysql.jdbc.Driver
gegameame为驱动类名。
二、数据源配置
接着,在代码中配置数据源,如下所示:
“`javafigurationfig {
ameeDataSource”)eDataSource”)figurationPropertiesge”)eDataSource() { DataSourceBuilder.create().build();
}
ame = “twoDataSource”)
@Qualifier(“twoDataSource”)aryfigurationPropertiesg.datasource.two”)
public DataSource twoDataSource() { DataSourceBuilder.create().build();
}
figurationfigurationProperties表示自动绑定属性,prefix指定属性前缀。
三、事务管理配置
gate来操作数据库时,需要配置事务管理器。因此,在代码中配置事务管理器,如下所示:
“`javafigurationableTransactionManagementsactionConfig {
@AutowiredeDataSource”)eDataSource;
@Autowired
@Qualifier(“twoDataSource”)
private DataSource twoDataSource;
ameeTransactionManager”)TransactionManagereTransactionManager() {sactionManagersactionManagerewsactionManager();sactionManagertityManagerFactoryeEntityManagerFactory().getObject());sactionManager;
}
amesactionManager”)TransactionManagersactionManager() {sactionManagersactionManagerewsactionManager();sactionManagertityManagerFactorytityManagerFactory().getObject());sactionManager;
}
ameeEntityManagerFactory”)tainerEntityManagerFactoryBeaneEntityManagerFactory() {tainerEntityManagerFactoryBeanewtainerEntityManagerFactoryBean();eDataSource);pleetity”);ateJpaVendorAdapterdorAdapterewateJpaVendorAdapter();dorAdapterdorAdapter);gew HashMap();ate2ddl.auto”, “update”);ateate.dialect.MySQL5Dialect”);.setJpaPropertyMap(properties);;
}
ametityManagerFactory”)tainerEntityManagerFactoryBeantityManagerFactory() {tainerEntityManagerFactoryBeanewtainerEntityManagerFactoryBean();.setDataSource(twoDataSource);pletity”);ateJpaVendorAdapterdorAdapterewateJpaVendorAdapter();dorAdapterdorAdapter);gew HashMap();ate2ddl.auto”, “update”);ateate.dialect.MySQL5Dialect”);.setJpaPropertyMap(properties);;
}
ableTransactionManagementfigurationProperties表示自动绑定属性,prefix指定属性前缀。
四、使用数据源
最后,在代码中使用数据源,如下所示:
“`java
@ServicesactionalsactionManagereTransactionManager”)eService {
@AutowiredeRepositoryeRepository;
eEntitydAll() {eRepositorydAll();
}
@ServicesactionalsactionManagersactionManager”)
public class TwoService {
@Autowired
private TwoRepository twoRepository;
titydAll() {dAll();
}
sactionalsactionManagereRepository和TwoRepository分别为操作数据库的接口。
g Boot项目中实现双MySQL架构了。