主题
示例代码项目
示例代码基于底座框架,包含基础系统管理功能及简单的增删改查示例代码的项目,点击下载(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