1. Créez un projet springboot vide
2. Configurez le fichier de configuration pom.xml, modifiez uniquement le contenu dans les dépendances, qui peuvent être directement remplacés
<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter</artifactid> </dependency> <dependency> <groupid>org.apache.httpcomponents</groupid> <artifactid>httpclient</artifactid> </dependency> <dependency> <groupid>cn.hutool</groupid> <artifactid>hutool-all</artifactid> <version>5.2.0</version> </dependency> <dependency> <groupid>com.alibaba</groupid> <artifactid>fastjson</artifactid> <version>1.2.9</version> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <optional>true</optional> </dependency> <!-- mybatis-plus --> <dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus-boot-starter</artifactid> <version>3.4.1</version> </dependency> <!-- 多数据源配置 --> <dependency> <groupid>com.baomidou</groupid> <artifactid>dynamic-datasource-spring-boot-starter</artifactid> <version>3.2.0</version> </dependency> <!-- mysql --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <scope>runtime</scope> </dependency></dependencies>
3. Configurez la source de données
spring: datasource:dynamic: primary: master #指定默认数据库,下面可以配置多个数据库,不仅仅是两个,master就是其中一个数据库的名字,名字对应就可以,自己随便取 datasource:master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://数据库1ip地址:数据库1端口/数据库1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true username: 数据库1用户 password: 数据库1密码slave: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://数据库2ip地址:数据库2端口/数据库2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true username: 数据库2用户 password: 数据库2密码
4. Créez une nouvelle
entity, mapper, service, impl
Si vous devez appeler différentes sources de base de données. , il vous suffit d'utiliser simplement l'annotation @DS ("nom de la base de données") dans l'impl
5. vous pouvez l'appeler dans la requête de données du contrôleur, la méthode de requête est la même
package com.xyz.dsjy.task;import com.xyz.dsjy.entity.Enterprise;import com.xyz.dsjy.entity.FjflCredit;import com.xyz.dsjy.service.EnterpriseService;import com.xyz.dsjy.service.FjflCreditService;import lombok.AllArgsConstructor;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@AllArgsConstructor@Component@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class MultithreadScheduleTask {public final FjflCreditService fjflCrediService; public final EnterpriseService enterpriseService; @Scheduled(fixedRate=5000)private void configureTasks() { FjflCredit fs = fjflCrediService.getById(1); System.out.println(fs); System.err.println("执行静态定时任务时间: " + LocalDateTime.now()); }@Scheduled(fixedRate=6000)private void configureTasks2() { Enterprise et = enterpriseService.getById(80); System.out.println(et); System.err.println("执行静态定时任务时间2222: " + LocalDateTime.now()); } }
6 Modifier la classe de démarrage @MapperScan("com.xyz.dsjy.mapper") Ajouter un scan du mappeur#🎜🎜. #
package com.xyz.dsjy;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.xyz.dsjy.mapper") //添加启动扫mapper包下的mapper类public class DsjyApplication {public static void main(String[] args) { SpringApplication.run(DsjyApplication.class, args); } }7. Démarrez le projet, affichez correctement les résultats dont nous avons besoin Pièges rencontrés : Pit 1 :
#🎜 🎜#Description :
Échec de la configuration d'une source de données : l'attribut 'url' n'est pas spécifié et aucune source de données intégrée n'a pu être configurée.
Raison : Impossible de déterminer une classe de pilote appropriée
Parce que pom.xml introduit druide et dynamique, et que nous utilisons dynamique, il nous suffit de supprimer l'introduction du druide.
Pit 2 :
2021-04-08 15:52:53.242 INFO 20108 --- [ main] com.zaxxer.hikari.HikariDataSource : master - Démarrage...#🎜🎜 #2021-04-08 15:52:54.125 INFO 20108 --- [ main] com.zaxxer.hikari.HikariDataSource : master - Démarrage terminé.2021-04-08 15:52:54.126 INFO 20108 -- - [ principal] com.zaxxer.hikari.HikariDataSource : esclave - Démarrage...
2021-04-08 15:52:54.942 INFO 20108 --- [ principal] com.zaxxer.hikari.HikariDataSource : esclave - Démarrage terminé.
2021-04-08 15:52:54.942 INFO 20108 --- [ main] c.b.d.d.DynamicRoutingDataSource : dynamique-datasource - charger une source de données nommée [esclave] success
2021-04-08 1 5 :52:54.943 INFO 20108 --- [ main] c.b.d.d.DynamicRoutingDataSource : source de données dynamique - charger une source de données nommée [master] success
2021-04-08 15:52:54.943 INFO 20108 --- [ Main] c.b.d.d. DynamicRoutingDataSource : source de données dynamique chargée initialement [2] source de données, primaire
...
2021-04-08 15:52:54.989 INFO 20108 --- [ principal ] com.zaxxer .hikari.HikariDataSource : esclave - Arrêt initié...
2021-04-08 15:52 :55.164 INFO 20108 --- [ main] com.zaxxer.hikari.HikariDataSource : master - Arrêt terminé.
2021-04-08 15:52:55.165 INFO 20108 --- [ main] c.b .d.d.DynamicRoutingDataSource : dynamique - source de données toutes succès fermé, au revoir
Vous pouvez voir que la source multi-bases de données Démarrage terminé que nous avons configurée pendant le processus de démarrage a été à nouveau arrêtée après avoir rencontré une exception.
Cela est dû à l'introduction de plusieurs packages jar Mybatis. Vérifiez si le fichier bom.xml a introduit deux dépendances, mybatis et mybatis-plus. Si tel est le cas, supprimez simplement mybatis.
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!