springboot项目启动-自动创建数据表

很多时候,我们部署一个项目的时候,需要创建大量的数据表。例如mysql,一般的方法就是通过source命令完成数据表的移植,如:source /root/test.sql。如果我们需要一个项目启动后,就自动创建所需要的数据表,那么除了可以使用代码完成之外,还可以使用下面的方法。springboot的yml文件配置如下:

    server:
      port: 9137
      tomcat:
    uri-encoding: UTF-8
    max-threads: 100  #最大并发数
    max-connections: 200 #最大连接数
    accepCount: 50  #等待数
    
    spring:
      profiles:
    active: dev #切换开发环境和测试环境,dev为开发环境,prod为测试环境
      application:
    name: vslm
      zipkin:
    base-url: http://localhost:9917/
      sleuth:
    sampler:
      probability: 1.0   #2.0后percentage改为probability
      boot:
    admin:
      client:
    enabled: true
    url: "http://localhost:9905"   #指定hi-admin 服务端地址
    password: "admin"
    username: "admin"
    instance:
      prefer-ip: true
      datasource:
    url: jdbc:mysql://localhost:3306/vslm?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false
    driverClassName: com.mysql.jdbc.Driver
    username: root
    password: 123456
    #项目启动后执行建表语句
    schema:
    - classpath:sql/vslm.sql
    sql-script-encoding: utf-8
    platform: mysql
    initialization-mode: always
    druid:
      #监控统计拦截的filters
      filters: stat
      #配置初始化大小/最小/最大
      initial-size: 1
      min-idle: 1
      max-active: 20
      #获取连接等待超时时间
      max-wait: 60000
      #间隔多久进行一次检测,检测需要关闭的空闲连接
      time-between-eviction-runs-millis: 60000
      #一个连接在池中最小生存的时间
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
    
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.hierway.vslm.domain  # 注意:对应实体类的路径
    
    management:
      endpoints:
    web:
      exposure:
       include: "*"   #暴露所有的端点我们可以看到更多的服务实例相关信息,
      endpoint:
    shutdown:
      enabled: true
      sensitive: false
    health:
      show-details: ALWAYS   #health endpoint是否必须显示全部细节
    dataacess:
      data-access-type: 0 # 0: 使用mybatis1: 使用data service
    
    dataservice:
      base-url: http://localhost:9763/services/reqm_dataservice
    
    rest-client:
      pool-size: 200
      default-max-per-route: 100
      connection-timeout: 5000
      connection-request-timeout: 1000
      socket-timeout: 65000
      validate-after-inactivity: 2000
    
    
    eureka:
      instance:
    lease-expiration-duration-in-seconds: 30
    lease-renewal-interval-in-seconds: 10
    prefer-ip-address: true
      client:
    registerWithEureka: true
    fetchRegistry: true
    #eureka服务端的地址
    serviceUrl:
      defaultZone: http://admin:admin@10.10.10.3:9909/eureka/

然后在resource下创建文件夹sql(自定义)以及vslm.sql文件,键入数据定义语言DDL(Data Definition Language)。当项目启动后,发现会自动创建数据表。

原文地址:https://www.cnblogs.com/yiweiblog/p/11190078.html