Récemment, en raison des besoins du projet, différentes bases de données doivent être accessibles simultanément dans le programme. C'était vraiment pratique et rapide d'utiliser les annotations springboot pour écrire du code auparavant, mais si vous devez en modifier certaines pour faciliter votre propre utilisation, c'est un peu ennuyeux et je ne sais pas par où commencer. Écrivez ceci.
Le premier est pom.xml, qui est courant et ne sera pas publié ici.
La seconde est la configuration application.properties En raison d'environnements différents, l'auteur a créé deux nouveaux fichiers de configuration application-dev.properties et application-pro.properties.
application.properties : Précisez la configuration de l'environnement actuellement utilisé
spring.profiles.active=dev
application-dev.properties的配置(application-pro.properties类似dev的配置)
#datasource1 spring.datasource.username=** spring.datasource.password=***** spring.datasource.jdbc-url=jdbc:mysql://*************** useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.driver-class-name=com.mysql.jdbc.Driver #datasource2 spring.datasource.ds1.username=*** spring.datasource.ds1.password=****** spring.datasource.ds1.jdbc-url=jdbc:mysql://*************** useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.ds1.driver-class-name=com.mysql.jdbc.Drive
MyBatis (Config1) des différentes sources de données
@Configuration @MapperScan(basePackages = "com.pet.petgame2.mapper.dao", sqlSessionFactoryRef = "petgame2SessionFactory") public class Config1 { @Bean(name = "petgame2") @ConfigurationProperties(prefix = "spring.datasource") @Primary public DataSource dataSource(){ return DataSourceBuilder.create().build(); } @Bean(name = "petgame2SessionFactory") @Primary public SqlSessionFactory sessionFactory(@Qualifier("petgame2") DataSource dataSource) throws Exception{ SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:Mapper/pet2Mapper/*.xml")); return factoryBean.getObject(); } @Bean(name = "petgame2TransactionManager") @Primary public DataSourceTransactionManager transactionManager(@Qualifier("petgame2") DataSource dataSource){ return new DataSourceTransactionManager(dataSource); } }
@Configuration @MapperScan(basePackages = "com.pet.petgame2.mapper.dao2", sqlSessionFactoryRef = "petgamesqlSessionFactory") public class Config2 { @Bean(name = "petgame") @ConfigurationProperties(prefix = "spring.datasource.ds1") public DataSource dataSource(){ return DataSourceBuilder.create().build(); } @Bean(name = "petgamesqlSessionFactory") public SqlSessionFactory sessionFactory(@Qualifier("petgame") DataSource dataSource) throws Exception{ SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:Mapper/petMapper/*.xml")); return factoryBean.getObject(); } @Bean(name = "petgameTransactionManager") public DataSourceTransactionManager transactionManager(@Qualifier("petgame") DataSource dataSource){ return new DataSourceTransactionManager(dataSource); } }
spring.datasource.url改为spring.datasource.jdbc-url
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!