Skip to content

示例代码项目

示例代码基于底座框架,包含基础系统管理功能及简单的增删改查示例代码的项目,点击下载(1.0.0)

快速启动

在完成研发云项目创建,二方库申请,项目虚拟制品库创建,maven配置完成后,按文档修改配置,才可运行示例项目。

具体配置内容修改如下:

根pom文件修改:

xml
<repositories>
    <repository>
        <id>gz02-artifact.srdcloud.cn-release</id>
        <url>https://gz02-artifact.srdcloud.cn/{修改为自己项目的release虚拟制品库地址}</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>gz02-artifact.srdcloud.cn-snapshot</id>
        <url>https://gz02-artifact.srdcloud.cn/{修改为自己项目的snapshot虚拟制品库地址}</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

数据库配置(demo_app-api/resources/config-env/dev/application.yml):

yaml
# 修 改用户名、密码、及数据库链接,默认mysql驱动,其他驱动请更换drvier信息
pubinfo:
  db:
    username: user
    password: pwd
    url: jdbc:mysql://127.0.0.1:3306/db
    # d river: com.mysql.cj.jdbc.Driver

修改完成后,运行StartApplication启动后,控制台会输出的文档地址,访问文档连接,即可查看相关后端服务。

代码结构

下图是代码生成器生成的示例代码结构图:

模块说明:

demo-app-api:controller接口module

demo-app-core:service、mapper相关代码moudle

包结构说明:

demo-app-api

cn.zjtele.demo.api.controller:controler相关接口代码

cn.zjtele.demo.api.controller.StartApplication:启动类

resource/config:包含application-biz.yml、application-sys-base.yml、application-sys-repo.yml、application-sys-swagger.yml,此目录下主要是需要在阶段调整的配置,最终会打包进jar内,具体配置说明见下文。

resource/config-env:含有两个文件见,dev(开发)、dist(生产),可通过mavend的profile选择对应的启动及打包配置,可自行添加,并配置对应的profile;主要包含application.yml,此目录下主要是需要在运行阶段调整的配置,最终不会打包进jar内,方便运行阶段调整。具体配置说明见下文。

resource/db/changelog-master.xml:基于liquibase的数据库结构变更管理主文件,启动后自动初始化数据库表及数据。

demo-app-core

cn.zjtele.demo.core.domain:定义相关pojo、dto、bo类

cn.zjtele.demo.core.mapper:定义相关数据库mapper类

cn.zjtele.demo.core.service:定义相关service服务及实现类

resource/mapper:相关mapper的xml文件

package:打包相关配置,用于将代码编译打包为安装包

bin:相关启动脚本

package.xml:打包文件的详细配置,依赖于maven插件:maven-assembly-plugin,打包相关配置,见demo-app-api的pom文件

配置说明

application-biz

登录认证、授权校验,密码等相关配置

yaml
pubinfo:
  # 认证授权相关配置
  auth:
    # 登录后访问token相关配置
    access-token:
      # 访问token的过期时间
      expire-time: 1800000
      # 访问token的生成签名key
      key: AK@344UY*
    # 登 录后刷新token相关配置
    refresh-token:
      # 刷新token的生成签名key
      key: RK@231YU#
      # 刷新token的过期时间
      expire-time: 36000000
    # 登录认证相关配置
    authentication:
      # 登录认证开关
      enable: true
      # 登录认证白名单url列表
      white-path: /test/**
    # 登录授权相关配置
    authorization:
      # 登录授权校验开关
      enable: true
      # 登录授权校验白名单
      white-path: /auth/changeLoginOrg,/dict/item/list,/rbac/user/userEntireInfo,/rbac/resource/grantedResources,/rbac/user/changePassword
    # 登录锁定配置
    login-lock:
      # 登录锁定开关
      enable: true
      # 允许失败次数
      allow-fail-counts: 5
      # 锁定时间,单位分钟
      lock-minutes: 5
    # 验证码开关
    valid-code-enable: true
  # f astjson2相关配置
  fastjson2:
    # 允 许自动类型失败的类列表,fastjson2管理包autoType,防止安全漏洞,需要自动类型识别的自行配置白名单
    auto-filters:
      - cn.zjtele.pubinfo.sys.auth.spi.domain.ValidCode
      - cn.zjtele.pubinfo.sys.auth.core.domain.entity.PubLoginLock
      - cn.zjtele.pubinfo.sys.dict.core.domain.entity.PubDictItem
  rbac:
    # 登录密码相关配置
    password:
      # 密码加密盐值
      salt: PQwgaGTJCbPnWG8Ftv9fzA==

application-sys-base

主要为服务名,端口,编码及跨域相关配置。

yaml
# 日 志相关配置
logging:
  level:
    org:
      springframework:
        boot:
          autoconfigure: error
pubinfo:
  # 跨 域相关配置
  cors:
    # 允 许所有跨域
    allow-all: true
    # 跨 域配置开关
    enable: true
# 系 统服务相关配置
server:
  # 会 使用application.yml中的的pubinfo.server.port,没有默认9999
  # 下 面其他引用类型的配置,也类似。
  port: ${pubinfo.server.port:9999}
  servlet:
    context-path: ${pubinfo.server.context-path:/}
    encoding:
      charset: UTF-8
      enabled: true
      force: true
  tomcat:
    uri-encoding: UTF-8
# s pring的基础配置
spring:
  application:
    name: ${pubinfo.application.name:}
  banner:
    charset: UTF-8
  messages:
    encoding: UTF-8
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 500MB

application-sys-repo

主要为数据库链接池、mubatis-plus等相关配置。

yaml
# m ybatis-plus配置
mybatis-plus:
  configuration:
    # 自 动映射,默认对所有的结果集进行自动映射,包括嵌套结果集
    auto-mapping-behavior: full
    # 缓 存开关
    cache-enabled: false
    # 日 志实现类
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
    # p ojo与数据库字段的驼峰映射
    map-underscore-to-camel-case: true
  global-config:
    db-config:
      # i d生成方式
      id-type: assign_id
      # 逻 辑删除字段
      logic-delete-field: deleted
      # 更 新策略
      update-strategy: not_empty
      # 逻 辑删除的值
      logic-delete-value: '1'
      # 逻 辑不删除的值
      logic-not-delete-value: '0'
  # m apper文件路径
  mapper-locations: classpath*:mybatis.mapper/**/*.xml
  type-aliases-package: cn.zjtele.pubinfo.urp.*.*.entity,cn.zjtele.pubinfo.address.*.*.entity

spring:
  # 数 据源配置
  datasource:
    # 驱 动配置,默认mysql
    driver-class-name: ${pubinfo.db.driver:com.mysql.cj.jdbc.Driver}
    # 链 接池配置
    hikari:
      auto-commit: true
      connection-test-query: SELECT 1
      connection-timeout: 30000
      idle-timeout: 30000
      max-lifetime: 1800000
      maximum-pool-size: 25
      minimum-idle: 10
      pool-name: DatebookHikariCP
    # 密 码
    password: ${pubinfo.db.password}
    type: com.zaxxer.hikari.HikariDataSource
    # j dbc链接
    url: ${pubinfo.db.url}
    # 用 户名
    username: ${pubinfo.db.username}

application-sys-swagger

主要为文档相关配置。

yaml
# pubinfo-swagger
pubinfo:
  swagger:
    # 文 档分组配置
    group:
      # a uth认证授权服务分组
      auth:
        # 分 组名
        name: 认证服务接口
        # 分 组标题
        title: 认证服务
        # 分 组开关
        enable: true
        # 分 组接口路径
        paths: /auth/**
        # 分 组需扫码的包路径
        packages-to-scan: cn.zjtele.pubinfo.sys.auth.api
        # 默 认要添加的headers
        # headers: Authorization
      # r bac服务分组
      rbac:
        name: rbac相关接口
        title: rbac相关接口
        enable: true
        paths: /rbac/**
        packages-to-scan: cn.zjtele.pubinfo.sys.rbac.api
        headers: Authorization
      # 配 置数据服务分组
      configData:
        name: 系统配置数据服务接口
        title: 系统配置数据服务
        enable: true
        paths: /dict/**
        packages-to-scan: cn.zjtele.pubinfo.sys.dict.api
        headers: Authorization
# s pringdoc配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    # 接 口排序方式
    tags-sorter: alpha
    # o perations-sorter: alpha
  api-docs:
    enabled: ${pubinfo.swagger.enable:true}
    # 文 档路径
    path: /v3/api-docs
  # 一 定要不改为true,容易栈溢出
  default-flat-param-object: false
# k nife4j相关配置
knife4j:
  # k nife4j开关,与springdoc一起,统一引用pubinfo.swagger.enable
  enable: ${pubinfo.swagger.enable:true}
  setting:
    language: zh_cn
    swagger-model-name: 实体类列表
    enable-dynamic-parameter: true
  # 检 验的basic登录认证校验
  basic:
    enable: false
    username: abc
    password: 123

application.yml

改配置文件,主要为运行时可能频繁修改的配置,主要包含系统服务配置,数据库配置,登录密码配置,文档开关,缓存配置,日志配置等。

yaml
pubinfo:
  # 应 用名
  application:
    name: demo-app
  # 数 据库链接配置
  db:
    username: root
    password: Root_123
    url: jdbc:mysql://115.227.0.207:10306/gen_test
  rbac:
    # 登 录密码配置
    password:
      # 默 认密码
      default-password: Pubinfo@183729
      # 密 码有效期,到期需修改密码
      expire-days: 180
      # 首 次登录强制修改密码开关
      force-change-init-pwd: true
      # 密 码不能与前几次密码重复
      num-of-recent-no-repeat: 2
      # 后 端密码强度校验器列表,强度校验接口为PasswordStrengthChecker,可自定扩展
      strength-checker-list: contentRegex,length,keyBoard,oldPassword,userName
  server:
    # c ontext-path
    context-path: /${pubinfo.application.name}
    # 端 口
    port: 9099
  swagger:
    # s wagger文档开关
    enable: true
spring:
  # 缓 存配置
  cache:
    # 默 认缓存类型
    type: redis
  # l iquibase相关配置
  liquibase:
    # l iquibase主文件
    change-log: classpath:/db/changelog-master.xml
    # l iquibase开关
    enabled: true
  # r edis相关配置
  redis:
    database: 0
    host: 127.0.0.1
    password:
    port: 6379
  # 关 联的配置文件
  profiles:
    include: biz,sys-base,sys-repo,sys-swagger

# 日 志相关配置
logging:
  file:
    # 日 志文件名
    name: ${pubinfo.application.name}
  # 默 认日志输出级别
  level:
    root: info