初始化项目
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1,10 @@
|
||||
# 系统配置
|
||||
sys:
|
||||
# 用户配置
|
||||
user:
|
||||
# 初始化密码
|
||||
passwd: ${SYS_USER_PASSWD:xtools}
|
||||
# 日志配置
|
||||
log:
|
||||
# 存储类型(elasticsearch|mysql)
|
||||
type: ${SYS_LOG_TYPE:elasticsearch}
|
||||
@@ -0,0 +1,10 @@
|
||||
# Spring 配置
|
||||
spring:
|
||||
# 虚拟线程配置
|
||||
threads:
|
||||
virtual:
|
||||
enabled: true
|
||||
# jackson配置
|
||||
jackson:
|
||||
# 不输出null
|
||||
default-property-inclusion: non_null
|
||||
@@ -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
|
||||
@@ -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.*,*"
|
||||
@@ -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}
|
||||
@@ -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
|
||||
@@ -0,0 +1,4 @@
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
root: info
|
||||
@@ -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
|
||||
@@ -0,0 +1,8 @@
|
||||
# MyBatisPlus 配置
|
||||
mybatis-plus:
|
||||
global-config:
|
||||
# 控制台是否打印 LOGO
|
||||
banner: false
|
||||
# configuration:
|
||||
# # 打印 SQL
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
@@ -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}
|
||||
@@ -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
|
||||
@@ -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}
|
||||
@@ -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:}
|
||||
@@ -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:}
|
||||
@@ -0,0 +1,6 @@
|
||||
# api配置
|
||||
api:
|
||||
# 百度api
|
||||
baidu:
|
||||
# 百度地图ak
|
||||
ak: ${API_BAIDU_AK:abc}
|
||||
@@ -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
|
||||
32
xtools-app-standalone/src/main/resources/application.yml
Normal file
32
xtools-app-standalone/src/main/resources/application.yml
Normal 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}
|
||||
Reference in New Issue
Block a user