初始化项目

This commit is contained in:
2026-04-21 16:12:04 +08:00
parent 4541af2c63
commit f9d96473da
443 changed files with 36365 additions and 19 deletions

View File

@@ -0,0 +1,46 @@
package xtools.app;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.util.StopWatch;
import xtools.boot.core.utils.AppUtils;
/**
* <p>Title : StandaloneApplication</p>
* <p>Description : StandaloneApplication</p>
* <p>DevelopTools : Idea_x64_v2026.1</p>
* <p>DevelopSystem : macOS Sequoia 15.7.5</p>
* <p>Company : org.xujun</p>
*
* @author : XuJun
* @version : 1.0.0
* @date : 2026/01/17 12:30
*/
@Slf4j
@SpringBootApplication
public class StandaloneApplication {
/**
* Main
*
* @param args 参数
*/
static void main(String[] args) {
StopWatch sw = new StopWatch();
sw.start();
runApp(args);
sw.stop();
log.info(AppUtils.info(sw.getTotalTimeMillis()));
}
/**
* 运行 App
*
* @param args 参数
*/
public static void runApp(String[] args) {
SpringApplication.run(StandaloneApplication.class, args);
}
}

View File

@@ -0,0 +1,82 @@
# 代码生成器配置
gen:
# 下载代码文件名称
downloadFileName: xtools-code.zip
# 后端项目名称
backendAppName: xtools-app
# 前端项目名称
frontendAppName: xtools-manager
# 排除数据表
excludeTables:
- log
# 默认配置
defaultConfig:
# 作者
author: xujun
# 版本
version: 1.0.0
# 模块名称
moduleName: system
# 过滤配置
filterConfig:
# 列注释过滤(正则)
columnRemarks:
- '\[.*?]'
# 模板配置
templateConfigs:
TS_API:
templatePath: gen/ts/api.ts.vm
subPackageName: api
extension: .ts
VUE_VIEW:
templatePath: gen/vue/index.vue.vm
subPackageName: view
extension: .vue
Api:
templatePath: gen/api/api.java.vm
subPackageName: api
projectModule: api
Call:
templatePath: gen/call/call.java.vm
subPackageName: call
projectModule: call
Controller:
templatePath: gen/controller/controller.java.vm
subPackageName: controller
Convert:
templatePath: gen/convert/convert.java.vm
subPackageName: convert
BaseService:
templatePath: gen/service/serviceBase.java.vm
subPackageName: service.base
Service:
templatePath: gen/service/service.java.vm
subPackageName: service
ServiceImpl:
templatePath: gen/service/serviceImpl.java.vm
subPackageName: service.impl
Mapper:
templatePath: gen/mapper/mapper.java.vm
subPackageName: mapper
Entity:
templatePath: gen/model/entity/entity.java.vm
subPackageName: model.entity
PageReq:
templatePath: gen/model/dto/pageReq.java.vm
subPackageName: model.dto.req
AddReq:
templatePath: gen/model/dto/addReq.java.vm
subPackageName: model.dto.req
UpdateReq:
templatePath: gen/model/dto/updateReq.java.vm
subPackageName: model.dto.req
Resp:
templatePath: gen/model/dto/resp.java.vm
subPackageName: model.dto.resp
Excel:
templatePath: gen/model/dto/excel.java.vm
subPackageName: model.dto.excel
Sql:
templatePath: gen/sql/db.sql.vm
subPackageName:
extension: .sql

View File

@@ -0,0 +1,10 @@
# 系统配置
sys:
# 用户配置
user:
# 初始化密码
passwd: ${SYS_USER_PASSWD:xtools}
# 日志配置
log:
# 存储类型(elasticsearch|mysql)
type: ${SYS_LOG_TYPE:elasticsearch}

View File

@@ -0,0 +1,10 @@
# Spring 配置
spring:
# 虚拟线程配置
threads:
virtual:
enabled: true
# jackson配置
jackson:
# 不输出null
default-property-inclusion: non_null

View File

@@ -0,0 +1,41 @@
# 数据库配置
spring:
datasource:
# 数据源名称
name: mysqlDataSource
# 数据库驱动
driverClassName: com.mysql.cj.jdbc.Driver
# 数据库连接地址
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:xtools}?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
# 数据库用户名
username: ${DB_USERNAME:root}
# 数据库密码
password: ${DB_PASSWORD:root}
# 数据库类型
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 连接池配置
# 初始化时建立物理连接的个数.初始化发生在显示调用init方法,或者第一次getConnection时
initial-size: 1
# 最小连接池数量
min-idle: 5
# 最大连接池数量
max-active: 30
# 获取连接时最大等待时间,单位毫秒.配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
# 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'.如果validationQuery为null,testOnBorrow,testOnReturn,testWhileIdle都不会起作用
validation-query: SELECT 'x'
# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
test-on-borrow: false
# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
test-on-return: false
# 建议配置为true,不影响性能,并且保证安全性.申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效
test-while-idle: true
# 是否缓存preparedStatement,也就是PSCache.PSCache对支持游标的数据库性能提升巨大,比如说oracle.在mysql下建议关闭
pool-prepared-statements: false
# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true.在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
max-pool-prepared-statement-per-connection-size: 10

View File

@@ -0,0 +1,35 @@
# 数据库配置
spring:
datasource:
druid:
# 使用的过滤器类型
filters: stat,wall,config
# WebStatFilter配置
web-stat-filter:
# 是否启用WebStatFilter
enabled: true
# 过滤地址
url-pattern: /*
# 过滤地址排除
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/actuator,/actuator/*,/druid/*"
# StatViewServlet配置
stat-view-servlet:
# 是否启用StatViewServlet
enabled: true
# 监控地址前缀
url-pattern: /druid/*
# 能否重置数据
reset-enable: false
# 登录用户名
login-username: ${DRUID_USERNAME:xtools}
# 登录密码
login-password: ${DRUID_PASSWORD:xtools321}
# IP白名单
allow:
# IP黑名单(黑名单优先级高于白名单)
deny:
# Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
# aop-patterns: "xtools.app.*,*"

View File

@@ -0,0 +1,9 @@
# elasticsearch配置
spring:
elasticsearch:
# elasticsearch地址
uris: ${ELASTICSEARCH_URIS:http://127.0.0.1:9200}
# 账号
username: ${ELASTICSEARCH_USERNAME:elastic}
# 密码
password: ${ELASTICSEARCH_PASSWORD:123456}

View File

@@ -0,0 +1,22 @@
# springdoc-openapi项目配置
springdoc:
swagger-ui:
enabled: true
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
enabled: true
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
# packages-to-scan: xtools.app
# knife4j的增强配置,不需要增强可以不配
knife4j:
# 是否为生产环境,开启生产环境后swagger不可用,需要同时配置production,enable为true
production: false
enable: false
setting:
language: zh_cn

View File

@@ -0,0 +1,4 @@
# 日志配置
logging:
level:
root: info

View File

@@ -0,0 +1,38 @@
# 管理信息配置
management:
info:
env:
# 是否显示项目信息
enabled: true
endpoint:
health:
# health endpoint是否必须显示全部细节
show-details: always
endpoints:
web:
exposure:
# 暴露的管理模块
include: "*"
spring:
# Spring安全信息配置
security:
user:
# 用户名
name: ${SPRING_SECURITY_USERNAME:admin}
# 密码
password: ${SPRING_SECURITY_PASSWORD:123456}
cloud:
nacos:
discovery:
metadata:
user:
# 认证用户名
name: ${spring.security.user.name}
# 认证密码
password: ${spring.security.user.password}
management:
# 服务器上下文路径服务器路径改变后需要改变监控地址
context-path: /actuator
# 服务器上下文路径服务器路径改变后需要改变心跳地址
health: /health

View File

@@ -0,0 +1,8 @@
# MyBatisPlus 配置
mybatis-plus:
global-config:
# 控制台是否打印 LOGO
banner: false
# configuration:
# # 打印 SQL
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@@ -0,0 +1,13 @@
# rabbitmq 配置
spring:
rabbitmq:
# 主机地址
host: ${RABBITMQ_HOST:127.0.0.1}
# 端口
port: ${RABBITMQ_PORT:5672}
# 用户名
username: ${RABBITMQ_USERNAME:admin}
# 密码
password: ${RABBITMQ_PASSWORD:123456}
# 虚拟主机
virtual-host: ${RABBITMQ_VIRTUAL_HOST:xtools-app}

View File

@@ -0,0 +1,26 @@
spring:
data:
# Redis 配置
redis:
# 数据库索引(默认为0)
database: ${REDIS_DATABASE:0}
# 服务器地址
host: ${REDIS_HOST:127.0.0.1}
# 服务器连接端口
port: ${REDIS_PORT:6379}
# 服务器连接密码(默认为空)
password: ${REDIS_PASSWORD:123456}
# 连接超时时间(毫秒)
timeout: 100000
lettuce:
# 连接池中的关闭超时时间
shutdown-timeout: 100000
pool:
# 连接池最大连接数(使用负值表示没有限制)
max-active: 50
# 连接池中的最大空闲连接
max-idle: 10
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1
# 连接池中的最小空闲连接
min-idle: 5

View File

@@ -0,0 +1,18 @@
# 存储配置
storage:
# 存储类型[file|s3](并且需要引入对应的jar包)
type: ${STORAGE_TYPE:file}
# 文件类型
file:
# 文件存储路径
path: ${STORAGE_FILE_PATH:/data/xtools/file}
# S3类型
s3:
# 服务类型(可为空)[rustfs]
server: ${STORAGE_S3_SERVER:rustfs}
# 地址
host: ${STORAGE_S3_HOST:http://127.0.0.1:9000}
# 密钥ID
accessKeyId: ${STORAGE_S3_ACCESS_KEY_ID:admin}
# 密钥
secretAccessKey: ${STORAGE_S3_SECRET_ACCESS_KEY:123456}

View File

@@ -0,0 +1,26 @@
xxl:
job:
admin:
# 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔.执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
addresses: ${XXL_JOB_ADMIN_ADDR:http://127.0.0.1:8080/xxl-job-admin}
# 调度中心通讯TOKEN [选填]:非空时启用;
accessToken: ${XXL_JOB_ADMIN_TOKEN:xtools-app-xxl-job}
# 调度中心通讯超时时间[选填],单位秒;默认3s;
timeout: ${XXL_JOB_ADMIN_TIMEOUT:3}
executor:
# 执行器启用开关 [选填]:默认开启,关闭时不进行执行器初始化;
enabled: ${XXL_JOB_ENABLED:false}
# 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
appName: ${spring.application.name}
# 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址.从而更灵活支持容器类型执行器动态IP和动态映射端口问题.
address: ${XXL_JOB_ADDR:}
# 执行器IP [选填]:默认为空表示自动获取IP多网卡时可手动设置指定IP该IP不会绑定Host仅作为通讯使用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
ip: ${XXL_JOB_IP:}
# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999单机部署多个执行器时注意要配置不同执行器端口;
port: ${XXL_JOB_PORT:9999}
# 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
logPath: ${XXL_JOB_LOG_PATH:}
# 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
logRetentionDays: ${XXL_JOB_LOG_RETENTION_DAYS:30}
# 任务扫描排除路径 [选填] :任务扫描时忽略指定包路径下的Bean;支持配置包路径前缀,多个逗号分隔;
excludedPackage: ${XXL_JOB_EXCLUDED_PACKAGE:}

View File

@@ -0,0 +1,14 @@
# Sentinel配置
spring:
cloud:
sentinel:
# 启动时立即注册
eager: true
log:
# sentinel日志保存路径
dir: ${SENTINEL_LOG_DIR:/data/xtools/scp}/${spring.application.name}
transport:
# dashboard服务器地址[默认值:127.0.0.1:8080]
dashboard: ${SENTINEL_DASHBOARD:127.0.0.1:8080}
# 指定客户端ip(防止ipv6的情况)
client-ip: ${CLIENT_IP:}

View File

@@ -0,0 +1,6 @@
# api配置
api:
# 百度api
baidu:
# 百度地图ak
ak: ${API_BAIDU_AK:abc}

View File

@@ -0,0 +1,22 @@
# 系统日志配置
sys:
log:
# 追踪配置
track:
# 日志追踪忽略路径
ignore-path:
- /sys/login/captcha/*
- /sys/log/*
- /sys/log/*/*
- /sys/dict/getByCode/*
- /sys/home/*
# LogBus 配置
bus:
# 是否打印日志
print: false
# 包含的堆栈信息(开始的包名)
include-stack-trace:
- xtools
- org.xujun
# 日志项最大长度
logDataItemMax: -1

View File

@@ -0,0 +1,32 @@
# Spring 配置
spring:
# 应用配置
application:
# 应用名称
name: xtools-app-standalone
# 环境配置
profiles:
active:
# Boot
- boot-base
- boot-db
- boot-druid
- boot-elasticsearch
- boot-knife4j
- boot-log
- boot-mybatis-plus
- boot-rabbitmq
- boot-redis
- boot-xxl-job
- boot-storage
# Customizer
- customizer-api
- customizer-log
# App
- app-gen
- app-sys
# 服务器配置
server:
# 端口
port: ${STANDALONE_SERVICE_PORT:18000}