项目pom依赖

父子依赖

父依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <modules>
        <module>pam-server</module>
    </modules>


    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.3.7.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>top.codx</groupId>
    <artifactId>pam</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>pam-server-master</name>
    <description>pam-server-master</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

</project>

子依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>pam</artifactId>
        <groupId>top.codx</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>pam-server</artifactId>


    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

常用依赖

   <dependencies>
        <!--web 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--lombok 依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mysql 依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--mybatis-plus 依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
    </dependencies>

配置文件

application.yml

server:
  # 端口
  port: 8081

spring:
  #数据源配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:// ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: root
    hikari:
      #连接池名
      pool-name: DateHikariCP
      #最小空闲连接数
      minimum-idle: 5
      #空闲连接存活最大时间,默认600000(10分钟)
      idle-timeout: 180000
      #最大连接数,默认10
      maximum-pool-size: 10
      #从连接池返回的连接的自动提交
      auto-commit: true
      #连接最大存活时间,0表示永久存活,默认1800000(30分钟)
      max-lifetime: 1800000
      #连接超时时间,默认30000(30秒)
      connection-timeout: 30000
      #测试连接是否可用的查询语句
      connection-test-query: SELECT 1

#Mybatis-plus配置
mybatis-plus:
  #配置Mapper映射文件
  mapper-locations: classpath*:/mapper/*Mapper.xml
  #配置MyBatis数据返回类型别名(默认别名是类名)
  type-aliases-package: top.codx.pojo
  configuration:
    #自动驼峰命名
    map-underscore-to-camel-case: false

# Mybatis SQL 打印(方法接口所在的包,不是Mapper.xml所在的包)
logging:
  level:
    top.codx.mapper: debug

多数据源配置

        <!--配置数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
```yaml
server:
  # 端口
  port: 8081

spring:
  #数据源配置
  datasource:
    dynamic:
      primary: db1   #默认数据库
      datasource:
        db1:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://rm-bp14w3i53fef83b8q6o.mysql.rds.aliyuncs.com:21521/private_account?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          username: ssy
          password: Mimamima10
        db2:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://rm-bp14w3i53fef83b8q6o.mysql.rds.aliyuncs.com:21521/private_account?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          username: ssy
          password: Mimamima10
    hikari:
      #连接池名
      pool-name: DateHikariCP
      #最小空闲连接数
      minimum-idle: 5
      #空闲连接存活最大时间,默认600000(10分钟)
      idle-timeout: 180000
      #最大连接数,默认10
      maximum-pool-size: 10
      #从连接池返回的连接的自动提交
      auto-commit: true
      #连接最大存活时间,0表示永久存活,默认1800000(30分钟)
      max-lifetime: 1800000
      #连接超时时间,默认30000(30秒)
      connection-timeout: 30000
      #测试连接是否可用的查询语句
      connection-test-query: SELECT 1

      druid:
        initial-size: 5  #初始大小
        max-active: 20      #最大活跃
        min-idle: 5     #最小
        max-wait: 60000     #最长等待时间
        time-between-eviction-runs-millis: 60000  #俩次之间的间隔时间 毫秒
        min-evictable-idle-time-millis: 300000      #多长时间不访问就称最小
        validation-query: SELECT 1 FROM DUAL   #验证查询
        test-while-idle: true           #是否开启闲置测试
        test-on-borrow: false    #在这个上测试
        test-on-return: false   #开启返回测试
        filters: stat,wall,log4j  #配置过滤器
        stat:
          log-slow-sql: true

#Mybatis-plus配置
mybatis-plus:
  #配置Mapper映射文件
  mapper-locations: classpath*:/mapper/*Mapper.xml
  #配置MyBatis数据返回类型别名(默认别名是类名)
  type-aliases-package: top.codx.pojo
  configuration:
    #自动驼峰命名
    map-underscore-to-camel-case: false

# Mybatis SQL 打印(方法接口所在的包,不是Mapper.xml所在的包)
logging:
  level:
    top.codx.mapper: debug

properties配置

#访问端口号
server.port=8080

spring.datasource.druid.type=com.alibaba.druid.pool.DruidDataSource
#数据库相关配置
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
# 初始化大小,最小,最大
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=3
spring.datasource.druid.max-active=20
# 配置获取连接等待超时的时间
spring.datasource.druid.max-wait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒,下面是:1分钟
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒,下面是:5分钟
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
#spring.datasource.druid.filters=stat,wall,log4j,config
# asyncInit是1.1.4中新增加的配置,如果有initialSize数量较多时,打开会加快应用启动时间
spring.datasource.druid.asyncInit=true
#druid监控相关配置
#用户名
druid.login.username=root
#密码
druid.login.password=root
#白名单
druid.allow=127.0.0.1
#黑名单(共同存在时,deny优先于allow)
druid.deny=root


#多数据源的配置
dynamic.datasource.slave1.driver-class-name=com.mysql.jdbc.Driver
dynamic.datasource.slave1.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
dynamic.datasource.slave1.username=root
dynamic.datasource.slave1.password=123456
dynamic.datasource.slave2.driver-class-name=com.mysql.jdbc.Driver
dynamic.datasource.slave2.url=jdbc:mysql://localhost:3306/shiro?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
dynamic.datasource.slave2.username=root
dynamic.datasource.slave2.password=123456


#mybatis相关配置
mybatis.type-aliases-package=io.commons.dynamic.datasource.entity
#配置mapper对应的xml映射
mybatis.mapper-locations=classpath:mapper/*.xml