This commit is contained in:
2025-10-17 10:11:04 +08:00
commit 9618d5cfa1
2012 changed files with 163764 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
FROM java:8-arm
ARG profile
ENV SPRING_PROFILES_ACTIVE=${profile}
ADD target/jeelowcode-admin-2.0.1.jar /jeelowcode-admin-docker.jar
## 设置 TZ 时区
ENV TZ=Asia/Shanghai
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"
ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8090", "-Xms1024m", "-Xmx1024m", "-Xmn256m", "-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/mnt/isr/log/dump/jeelowcode-admin","-jar","/jeelowcode-admin-docker.jar"]
EXPOSE 48080

93
jeelowcode-admin/pom.xml Normal file
View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.jeelowcode</groupId>
<artifactId>jeelowcode</artifactId>
<version>${jeelowcode.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jeelowcode-admin</artifactId>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>低代码启动器</description>
<dependencies>
<!-- 系统模块 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>jeelowcode-service-system-biz</artifactId>
<version>${jeelowcode.version}</version>
</dependency>
<!-- 代码生成器、接口文档 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>jeelowcode-service-infra-biz</artifactId>
<version>${jeelowcode.version}</version>
</dependency>
<!-- 工作流服务 暂时关闭 后面用到再打开 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>jeelowcode-service-bpm-biz</artifactId>
<version>${jeelowcode.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 服务保障相关 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>tool-spring-boot-starter-protection</artifactId>
</dependency>
<!-- 低代码服务 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>jeelowcode-module-biz</artifactId>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
</dependency>
<!-- 单元测试测试组件 -->
<dependency>
<groupId>com.jeelowcode</groupId>
<artifactId>tool-spring-boot-starter-test</artifactId>
<version>${jeelowcode.version}</version>
</dependency>
</dependencies>
<build>
<!-- 设置构建的 jar 包名 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 打包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,29 @@
package com.jeelowcode.server;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 项目的启动类
*/
@MapperScan("${jeelowcode.info.base-package}.**.mapper.**") //低代码平台
@SuppressWarnings("SpringComponentScan")
@SpringBootApplication(scanBasePackages = {
"${jeelowcode.info.base-package}.server",
"${jeelowcode.info.base-package}.service",
"${jeelowcode.info.base-package}.module",
"${jeelowcode.info.base-package}.listener",
"${jeelowcode.info.base-package}.core",//核心模块
"${jeelowcode.info.base-package}.**.spring"
})
public class JeeLowCodeApplication {
public static void main(String[] args) {
SpringApplication.run(JeeLowCodeApplication.class, args);
}
}

View File

@@ -0,0 +1,66 @@
server:
port: 48080
forward-headers-strategy: framework
--- #################### 数据库相关配置 ####################83kTnuLWPczi
spring:
datasource:
dynamic: # 多数据源配置
primary: master
datasource:
# master:
# # MYSQL数据库 主库,业务库
# name: jeelowcode_pre_master
# url: jdbc:dm://10.28.124.68:5236?schema=CSCN_MASTER&compatibleMode=oracle
# username: SYSDBA
# password: 83kTnuLWPczi
# jeelowcode: # 从库,框架库
# name: jeelowcode_pre_frame
# url: jdbc:dm://10.28.124.68:5236?schema=CSCN_FRAME&compatibleMode=oracle
# username: SYSDBA
# password: 83kTnuLWPczi
# slave: # 日志库单独
# name: dev_jeelowcode_log
# lazy: true # 开启懒加载,保证启动速度
# url: jdbc:dm://10.28.124.68:5236?schema=CSCN_LOG&compatibleMode=oracle
# username: SYSDBA
# password: 83kTnuLWPczi
master:
# MYSQL数据库 主库,业务库
name: jeelowcode_pre_master
url: jdbc:dm://localhost:5236?schema=LOWCODE_MASTER&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: 83kTnuLWPczi
jeelowcode: # 从库,框架库
name: jeelowcode_pre_frame
url: jdbc:dm://localhost:5236?schema=LOWCODE_FRAME&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: 83kTnuLWPczi
slave: # 日志库单独
name: dev_jeelowcode_log
lazy: true # 开启懒加载,保证启动速度
url: jdbc:dm://localhost:5236?schema=LOWCODE_LOG&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: 83kTnuLWPczi
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: 127.0.0.1 # 地址
port: 6379 # 端口
database: 10 # 数据库索引
# password: 123456 # 密码,建议生产环境开启
--- #################### 地代码平台相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置
jeelowcode:
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
demo: false # 关闭演示模式
debug: true #是否开启调试模式
#AES加解密 key 重新生成AesUtil.genAesKey()
aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm

View File

@@ -0,0 +1,94 @@
server:
port: 48080
forward-headers-strategy: framework
--- #################### 数据库相关配置 ####################
spring:
datasource:
dynamic: # 多数据源配置
primary: master
datasource:
master:
# MYSQL数据库 主库,业务库
name: jeelowcode_pre_master
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_MASTER&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
jeelowcode: # 从库,框架库
name: jeelowcode_pre_frame
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_FRAME&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
slave: # 日志库单独
name: dev_jeelowcode_log
lazy: true # 开启懒加载,保证启动速度
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_LOG&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: redis # 地址
# port: 6379 # 端口
# database: 10 # 数据库索引
# password: 123456 # 密码,建议生产环境开启
logging:
file:
name: /data/mjkj/webapp/mjkj_jeelowcode/webapp/logs/${spring.application.name}.log # 日志文件名,全路径
--- #################### 芋道相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置
jeelowcode:
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
security:
mock-enable: true
permit-all-urls:
- /admin-api/jeelowcode/open/** # 低代码平台,不需要登
- /admin-api/jeelowcode/demo/**
xss:
enable: false
exclude-urls: # 如下两个 url仅仅是为了演示去掉配置也没关系
- ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
- ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
access-log: # 访问日志的配置项
enable: false
error-code: # 错误码相关配置项
enable: false
demo: false # 关闭演示模式
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
--- #################### 地代码平台相关配置 ####################
jeelowcode:
portal:
todo:
sys-code: monitor_sys
protocol: http
domain: 10.2.96.73
excludeTableNames: #不允许该类型的表开头
- lowcode_
- qrtz_
- system_
- act_
- bpm_
- flw_
- infra_
debug: true #是否开启调试模式
#AES加解密 key 重新生成AesUtil.genAesKey()
aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm
#JAVA增强生成文件地址
enhancePath: jeelowcode-module\jeelowcode-module-biz\src\main\java\com\jeelowcode\module\biz\enhance
# Spring Boot Admin 配置项
spring:
boot:
admin:
ui:
public-url: https://xops.chinasatnet.com.cn/${spring.boot.admin.context-path}

View File

@@ -0,0 +1,81 @@
server:
port: 48080
forward-headers-strategy: framework
--- #################### 数据库相关配置 ####################
spring:
datasource:
dynamic: # 多数据源配置
primary: master
datasource:
master:
# MYSQL数据库 主库,业务库
name: jeelowcode_pre_master
url: jdbc:dm://172.17.0.1:5236?schema=LOWCODE_MASTER&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: Sysdba_666
jeelowcode: # 从库,框架库
name: jeelowcode_pre_frame
url: jdbc:dm://172.17.0.1:5236?schema=LOWCODE_FRAME&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: Sysdba_666
slave: # 日志库单独
name: dev_jeelowcode_log
lazy: true # 开启懒加载,保证启动速度
url: jdbc:dm://172.17.0.1:5236?schema=LOWCODE_LOG&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: SYSDBA
password: Sysdba_666
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: redis_isr # 地址
# port: 6379 # 端口
# database: 10 # 数据库索引
# password: 123456 # 密码,建议生产环境开启
logging:
file:
name: /data/mjkj/webapp/mjkj_jeelowcode/webapp/logs/${spring.application.name}.log # 日志文件名,全路径
--- #################### 芋道相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置
jeelowcode:
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
security:
mock-enable: true
permit-all-urls:
- /admin-api/jeelowcode/open/** # 低代码平台,不需要登
- /admin-api/jeelowcode/demo/**
xss:
enable: false
exclude-urls: # 如下两个 url仅仅是为了演示去掉配置也没关系
- ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
- ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
access-log: # 访问日志的配置项
enable: false
error-code: # 错误码相关配置项
enable: false
demo: false # 关闭演示模式
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
--- #################### 地代码平台相关配置 ####################
jeelowcode:
excludeTableNames: #不允许该类型的表开头
- lowcode_
- qrtz_
- system_
- act_
- bpm_
- flw_
- infra_
debug: true #是否开启调试模式
#AES加解密 key 重新生成AesUtil.genAesKey()
aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm
#JAVA增强生成文件地址
enhancePath: jeelowcode-module\jeelowcode-module-biz\src\main\java\com\jeelowcode\module\biz\enhance

View File

@@ -0,0 +1,104 @@
server:
port: 48081
forward-headers-strategy: framework
--- #################### 数据库相关配置 ####################
spring:
datasource:
dynamic: # 多数据源配置
primary: master
datasource:
master:
# MYSQL数据库 主库,业务库
name: jeelowcode_pre_master
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_MASTER_TEST&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
jeelowcode: # 从库,框架库
name: jeelowcode_pre_frame
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_FRAME_TEST&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
slave: # 日志库单独
name: dev_jeelowcode_log
lazy: true # 开启懒加载,保证启动速度
url: jdbc:dm://172.16.70.3:5236?schema=LOWCODE_LOG_TEST&compatibleMode=oracle
driver-class-name: dm.jdbc.driver.DmDriver
username: opsdb
password: cscn_ops@2025
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: redis # 地址
port: 6379 # 端口
database: 10 # 数据库索引
# password: 123456 # 密码,建议生产环境开启
logging:
file:
name: /data/mjkj/webapp/mjkj_jeelowcode/webapp/logs/${spring.application.name}.log # 日志文件名,全路径
--- #################### 芋道相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置
jeelowcode:
portal:
todo:
sys-code: monitor_sys
protocol: http
domain: 10.2.128.3
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
security:
mock-enable: true
permit-all-urls:
- /admin-api/jeelowcode/open/** # 低代码平台,不需要登
- /admin-api/jeelowcode/demo/**
xss:
enable: false
exclude-urls: # 如下两个 url仅仅是为了演示去掉配置也没关系
- ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
- ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
access-log: # 访问日志的配置项
enable: false
error-code: # 错误码相关配置项
enable: false
demo: false # 关闭演示模式
tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc
--- #################### 地代码平台相关配置 ####################
jeelowcode:
excludeTableNames: #不允许该类型的表开头
- lowcode_
- qrtz_
- system_
- act_
- bpm_
- flw_
- infra_
debug: true #是否开启调试模式
#AES加解密 key 重新生成AesUtil.genAesKey()
aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm
#JAVA增强生成文件地址
enhancePath: jeelowcode-module\jeelowcode-module-biz\src\main\java\com\jeelowcode\module\biz\enhance
justauth:
extend:
config:
CHINA_SATELLITE_NET:
requestClass: com.jeelowcode.service.system.config.social.ChinaSatelliteAuthRequest
client-id: asdafgfjsoiewjgoijirjgh
client-secret: asdfasdfasdfasdfasdfasdfasdfasdf
ignore-check-redirect-uri: true
redirect-uri: https://test.xops.chinasatnet.com.cn
enum-class: com.jeelowcode.service.system.config.social.ChinaSatelliteAuthSource
# Spring Boot Admin 配置项
spring:
boot:
admin:
ui:
public-url: https://test.xops.chinasatnet.com.cn/${spring.boot.admin.context-path}

View File

@@ -0,0 +1,445 @@
spring:
application:
name: jeelowcode-server
profiles:
active: local # 读取配置
main:
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。
# Servlet 配置
servlet:
# 文件上传相关配置项
multipart:
max-file-size: 16MB # 单个文件大小
max-request-size: 32MB # 设置总上传的文件大小
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类
# Jackson 配置项
jackson:
serialization:
write-dates-as-timestamps: true # 设置 Date 的格式,使用时间戳
write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401
write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳
fail-on-empty-beans: false # 允许序列化无属性的 Bean
# Cache 配置项
cache:
type: REDIS
redis:
time-to-live: 1h # 设置过期时间为 1 小时
--- #################### 接口文档配置 ####################
springdoc:
api-docs:
enabled: true
path: /v3/api-docs
swagger-ui:
enabled: true
path: /swagger-ui
default-flat-param-object: true
knife4j:
enable: true
setting:
language: zh_cn
# 工作流 Flowable 配置
flowable:
# 1. false: 默认值Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常
# 2. true: 启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表
# 3. create_drop: 启动时自动创建表,关闭时自动删除表
# 4. drop_create: 启动时,删除旧表,再创建新表
database-schema-update: false # 设置为 false可通过 https://github.com/flowable/flowable-sql 初始化
db-history-used: true # flowable6 默认 true 生成信息表,无需手动设置
check-process-definitions: false # 设置为 false禁用 /resources/processes 自动部署 BPMN XML 流程
history-level: full # full保存历史数据的最高级别可保存全部流程相关细节包括流程流转各节点参数
# MyBatis Plus 的配置项
mybatis-plus:
configuration:
map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。
jdbc-type-for-null: 'null'
global-config:
db-config:
id-type: NONE # "智能"模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
banner: false # 关闭控制台的 Banner 打印
type-aliases-package: ${jeelowcode.info.base-package}.module.*.entity
encryptor:
password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成
mybatis-plus-join:
banner: false # 是否打印 mybatis plus join banner默认true
sub-table-logic: true # 全局启用副表逻辑删除默认true。关闭后关联查询不会加副表逻辑删除
ms-cache: true # 拦截器MappedStatement缓存默认 true
table-alias: t # 表别名(默认 t)
logic-del-type: on # 副表逻辑删除条件的位置,支持 WHERE、ON默认 ON
# Spring Data Redis 配置
spring:
data:
redis:
repositories:
enabled: false # 项目未使用到 Spring Data Redis 的 Repository所以直接禁用保证启动速度
--- #################### 数据库相关配置 ####################
spring:
mvc:
servlet:
load-on-startup: 10
# 数据源配置项
autoconfigure:
exclude:
# - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
# - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
# - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
# - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
# - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
datasource:
druid: # Druid 【监控】相关的全局配置
web-stat-filter:
enabled: true
stat-view-servlet:
enabled: true
allow: # 设置白名单,不填则允许所有访问
url-pattern: /druid/*
login-username: # 控制台管理用户名和密码
login-password:
filter:
stat:
enabled: true
log-slow-sql: true # 慢 SQL 记录
slow-sql-millis: 100
merge-sql: true
wall:
config:
multi-statement-allow: true
dynamic: # 多数据源配置
druid: # Druid 【连接池】相关的全局配置
initial-size: 10 # 初始连接数
min-idle: 20 # 最小连接池数量
max-active: 100 # 最大连接池数量
max-wait: 60000 # 配置获取连接等待超时的时间,单位:毫秒
time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
min-evictable-idle-time-millis: 7200000 # 配置一个连接在池中最小生存的时间,单位:毫秒
max-evictable-idle-time-millis: 25200000 # 配置一个连接在池中最大生存的时间,单位:毫秒
#validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
test-while-idle: true
test-on-borrow: false
test-on-return: false
socket-timeout: 60000 # socket超时时间单位毫秒
connect-timeout: 60000 # 建立数据库连接超时时间,单位:毫秒
query-timeout: 60 # SQL查询超时时间单位
transaction-query-timeout: 60 # 事务超时时间,单位:秒
--- #################### 定时任务相关配置 ####################
# Quartz 配置项,对应 QuartzProperties 配置类
spring:
quartz:
auto-startup: true # 本地开发环境,尽量不要开启 Job
scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName
job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true
properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档
org:
quartz:
# Scheduler 相关配置
scheduler:
instanceName: schedulerName
instanceId: AUTO # 自动生成 instance ID
# JobStore 相关配置
jobStore:
# JobStore 实现类。可见博客https://blog.csdn.net/weixin_42458219/article/details/122247162
class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
isClustered: true # 是集群模式
clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000即 15 秒
misfireThreshold: 60000 # misfire 阀值,单位:毫秒。
# 线程池相关配置
threadPool:
threadCount: 25 # 线程池大小。默认为 10 。
threadPriority: 5 # 线程优先级
class: org.quartz.simpl.SimpleThreadPool # 线程池类型
jdbc: # 使用 JDBC 的 JobStore 的时候JDBC 的配置
initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。
--- #################### 监控相关配置 ####################
# Lock4j 配置项
lock4j:
acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
# Resilience4j 配置项
resilience4j:
ratelimiter:
instances:
backendA:
limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
register-health-indicator: true # 是否注册到健康监测
# Actuator 监控端点的配置项
management:
endpoints:
web:
base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
exposure:
include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
# Spring Boot Admin 配置项
spring:
boot:
admin:
# Spring Boot Admin Client 客户端的相关配置
client:
url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址
instance:
service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME]
# Spring Boot Admin Server 服务端的相关配置
context-path: /admin # 配置 Spring
# 日志文件配置
logging:
file:
name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
level:
# 配置自己写的 MyBatis Mapper 打印日志
com.jeelowcode: info
com.jeelowcode.core.framework.mapper: debug
com.jeelowcode.core.framework.service: debug
com.jeelowcode.core.flow.mapper: debug
com.jeelowcode.core.flow.service: debug
com.jeelowcode.service.bpm.mapper: debug
com.jeelowcode.service.bpm.service: debug
com.jeelowcode.service.infra.mapper: debug
com.jeelowcode.service.infra.service: debug
com.jeelowcode.service.system.mapper: debug
com.jeelowcode.service.system.service: debug
com.jeelowcode.core.framework.mapper.LogApiMapper: ERROR #日志入库不需要打印
com.jeelowcode.core.framework.mapper.LogApiErrorMapper: ERROR #日志入库不需要打印
com.jeelowcode.service.system.mapper.OperateLogMapper: error #日志入库不需要打印
org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR
org.mybatis.spring.mapper.ClassPathMapperScanner: error
de.codecentric: error
--- #################### 验证码相关配置 ####################
aj:
captcha:
jigsaw: classpath:images/jigsaw # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径
pic-click: classpath:images/pic-click # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径
cache-type: redis # 缓存 local/redis...
cache-number: 1000 # local 缓存的阈值,达到这个值,清除缓存
timing-clear: 180 # local定时清除过期缓存(单位秒),设置为0代表不执行
type: blockPuzzle # 验证码类型 default两种都实例化。 blockPuzzle 滑块拼图 clickWord 文字点选
water-mark: JeeLowCode # 右下角水印文字(我的水印),可使用 https://tool.chinaz.com/tools/unicode.aspx 中文转 UnicodeLinux 可能需要转 unicode
interference-options: 0 # 滑动干扰项(0/1/2)
req-frequency-limit-enable: false # 接口请求次数一分钟限制是否开启 true|false
req-get-lock-limit: 5 # 验证失败 5 次get接口锁定
req-get-lock-seconds: 10 # 验证失败后,锁定时间间隔
req-get-minute-limit: 30 # get 接口一分钟内请求数限制
req-check-minute-limit: 60 # check 接口一分钟内请求数限制
req-verify-minute-limit: 60 # verify 接口一分钟内请求数限制
--- #################### 消息队列相关 ####################
# rocketmq 配置项,对应 RocketMQProperties 配置类
rocketmq:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv
# Producer 配置项
producer:
group: ${spring.application.name}_PRODUCER # 生产者分组
spring:
rabbitmq:
host: 127.0.0.1 # RabbitMQ 服务的地址
port: 5672 # RabbitMQ 服务的端口
username: rabbit # RabbitMQ 服务的账号
password: rabbit # RabbitMQ 服务的密码
# Kafka 配置项,对应 KafkaProperties 配置类
kafka:
bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔
# Kafka Producer 配置项
producer:
acks: 1 # 0-不应答。1-leader 应答。all-所有 leader 和 follower 应答。
retries: 3 # 发送失败时,重试发送的次数
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer # 消息的 value 的序列化
# Kafka Consumer 配置项
consumer:
auto-offset-reset: earliest # 设置消费者分组最初的消费进度为 earliest 。可参考博客 https://blog.csdn.net/lishuangzhe7047/article/details/74530417 理解
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring.json.trusted.packages: '*'
# Kafka Consumer Listener 监听器配置
listener:
missing-topics-fatal: false # 消费监听接口监听的主题不存在时,默认会报错。所以通过设置为 false ,解决报错
--- #################### 第三方授权登录 ####################
justauth:
extend:
config:
CHINA_SATELLITE_NET:
requestClass: com.jeelowcode.service.system.config.social.ChinaSatelliteAuthRequest
client-id: asdafgfjsoiewjgoijirjgh
client-secret: asdfasdfasdfasdfasdfasdfasdfasdf
ignore-check-redirect-uri: true
redirect-uri: https://xops.chinasatnet.com.cn
enum-class: com.jeelowcode.service.system.config.social.ChinaSatelliteAuthSource
enabled: true
type:
DINGTALK: # 钉钉
client-id:
client-secret:
ignore-check-redirect-uri: true
WECHAT_ENTERPRISE: # 企业微信
client-id: wwd411c69a39ad2e54
client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw
agent-id: 1000004
ignore-check-redirect-uri: true
WECHAT_MINI_APP: # 微信小程序
client-id: ${wx.miniapp.appid}
client-secret: ${wx.miniapp.secret}
ignore-check-redirect-uri: true
ignore-check-state: true # 微信小程序,不会使用到 state所以不进行校验
WECHAT_MP: # 微信公众号
client-id: ${wx.mp.app-id}
client-secret: ${wx.mp.secret}
ignore-check-redirect-uri: true
cache:
type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
--- #################### 微信公众号、小程序相关配置 ####################
wx:
mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档
app-id: wx5b23ba7a5589ecbb # 测试号(自己的)
secret: 2a7b3b20c537e52e74afd395eb85f61f
# 存储配置,解决 AccessToken 的跨节点的共享
config-storage:
type: RedisTemplate # 采用 RedisTemplate 操作 Redis会自动从 Spring 中获取
key-prefix: wx # Redis Key 的前缀
http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台
miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档
appid: wx63c280fe3248a3e7 # wenhualian的接口测试号
secret: 6f270509224a7ae1296bbf1c8cb97aed
config-storage:
type: RedisTemplate # 采用 RedisTemplate 操作 Redis会自动从 Spring 中获取
key-prefix: wa # Redis Key 的前缀
http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台
--- #################### 框架相关配置 ####################
jeelowcode:
info:
version: 2.0.0
base-package: com.jeelowcode
web-url: www.jeelowcode.com
security:
permit-all_urls:
- /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,不需要登录
- /admin-api/jeelowcode/open/** # 低代码平台,不需要登
- /admin-api/jeelowcode/demo/**
- /admin-api/jeelowcode/dingding/open/**
websocket:
enable: true # websocket的开关
path: /infra/ws # 路径
sender-type: local # 消息发送的类型,可选值为 local、redis、rocketmq、kafka、rabbitmq
swagger:
title: JeeLowCode低代码开发平台
description: 提供管理后台所有功能
version: ${jeelowcode.info.version}
url: ${jeelowcode.info.web-url}
access-log: # 访问日志的配置项
enable: false
codegen:
base-package: ${jeelowcode.info.base-package}
db-schemas: ${spring.datasource.dynamic.datasource.master.name}
front-type: 10 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类
error-code: # 错误码相关配置项
enable: false
constants-class-list:
- com.jeelowcode.service.bpm.enums.ErrorCodeConstants
- com.jeelowcode.service.infra.enums.ErrorCodeConstants
tenant: # 多租户相关配置项
enable: true
ignore-urls:
- /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号
- /admin-api/system/tenant/get-by-website # 基于域名获取租户,不许带租户编号
- /admin-api/system/captcha/get # 获取图片验证码,和租户无关
- /admin-api/system/captcha/check # 校验图片验证码,和租户无关
- /admin-api/infra/file/*/get/** # 获取图片,和租户无关
- /admin-api/system/sms/callback/* # 短信回调接口,无法带上租户编号
- /admin-api/jeelowcode/** # 低代码平台的全部放开,有自己的一套租户 规则
ignore-tables:
- DUAL
- dual
- ALL_TABLES
- all_tables
- ALL_INDEXES
- all_indexes
- system_tenant
- system_tenant_package
- system_dict_data
- system_dict_type
- system_error_code
- system_menu
- system_sms_channel
- system_sms_template
- system_sms_log
- system_sensitive_word
- system_oauth2_client
- system_mail_account
- system_mail_template
- system_mail_log
- system_notify_template
- system_notify_message
- infra_codegen_column
- infra_codegen_table
- infra_config
- infra_file_config
- infra_file
- infra_file_content
- infra_job
- infra_job_log
- infra_data_source_config
- tmp_report_data_1
- tmp_report_data_income
- 'lowcode_config' #低代码开头的不要多租户
- 'lowcode_dbform*' #低代码开头的不要多租户
- 'lowcode_desform*' #低代码开头的不要多租户
- 'lowcode_tab*' #低代码开头的不要多租户
- 'lowcode_report*' #低代码开头的不要多租户
- 'lowcode_log_*' #低代码开头的不要多租户
- '*_seq' #oracle自增主键等
sms-code: # 短信验证码相关的配置项
expire-times: 10m
send-frequency: 1m
send-maximum-quantity-per-day: 10
begin-code: 9999 # 这里配置 9999 的原因是,测试方便。
end-code: 9999 # 这里配置 9999 的原因是,测试方便。
excludeTableNames: #不允许该类型的表开头
- lowcode_
- qrtz_
- system_
- act_
- bpm_
- flw_
- infra_
ai:
deepseek:
apiKey: sk-b31fcf4e27bf45fbb65ace5bbc627d5d
kimi:
apiKey: sk-EE98wvDeTFvxRcBxDQmWhKQlewkGFIrfyCxvyNxDj8Vaf701
debug: false

View File

@@ -0,0 +1,87 @@
<configuration>
<!-- 引用 Spring Boot 的 logback 基础配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- 变量 jeelowcode.info.base-package基础业务包 -->
<springProperty scope="context" name="jeelowcode.info.base-package" source="jeelowcode.info.base-package"/>
<!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level级别从左显示 5 个字符宽度,%msg日志消息%n是换行符 -->
<property name="PATTERN_DEFAULT"
value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!-- 控制台 Appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">     
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
</appender>
<!-- 文件 Appender -->
<!-- 参考 Spring Boot 的 file-appender.xml 编写 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
<!-- 日志文件名 -->
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 滚动后的日志文件名 -->
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}
</fileNamePattern>
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<!-- 日志文件,到达多少容量,进行滚动 -->
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
<!-- 日志文件的总大小0 表示不限制 -->
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
<!-- 日志文件的保留天数 -->
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
</rollingPolicy>
</appender>
<!-- 异步写入日志,提升性能 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
<queueSize>1024</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!-- SkyWalking GRPC 日志收集实现日志中心。注意SkyWalking 8.4.0 版本开始支持 -->
<appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${PATTERN_DEFAULT}</pattern>
</layout>
</encoder>
</appender>
<!-- 本地环境 -->
<springProfile name="local">
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="GRPC"/> <!-- 本地环境下,如果不想接入 SkyWalking 日志服务,可以注释掉本行 -->
<appender-ref ref="ASYNC"/> <!-- 本地环境下,如果不想打印日志,可以注释掉本行 -->
</root>
</springProfile>
<!-- 其它环境 -->
<springProfile name="dev,test,stage,default">
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ASYNC"/>
<appender-ref ref="GRPC"/>
</root>
</springProfile>
<!-- 单独对设备网环境、办公网环境进行配置 -->
<springProfile name="prod,office">
<root level="WARN">
<appender-ref ref="ASYNC"/>
<appender-ref ref="GRPC"/>
</root>
<!-- 特定业务包使用INFO级别 -->
<logger name="com.jeelowcode" level="INFO"/>
</springProfile>
</configuration>

View File

@@ -0,0 +1,27 @@
package com.jeelowcode.test.json;
import cn.hutool.json.JSONUtil;
import com.jeelowcode.service.bpm.config.framework.portal.core.dto.ReceiveRequestInfoDTO;
import com.jeelowcode.tool.framework.common.util.json.JsonUtils;
import com.jeelowcode.tool.framework.test.core.ut.BaseMockitoUnitTest;
import org.junit.Test;
import java.util.Date;
/**
* 描述Json工具类测试
*
* @author shelly
*/
public class JsonUtilsTest extends BaseMockitoUnitTest {
@Test
public void testJsonToString() {
ReceiveRequestInfoDTO requestDTO = new ReceiveRequestInfoDTO()
.setCreateDateTime(new Date())
.setReceiveDateTime(new Date());
System.out.println(JsonUtils.toJsonString(requestDTO));
System.out.println(JSONUtil.toJsonStr(requestDTO));
}
}

View File

@@ -0,0 +1,44 @@
spring:
main:
lazy-initialization: true # 开启懒加载,加快速度
banner-mode: off # 单元测试,禁用 Banner
--- #################### 数据库相关配置 ####################
spring:
datasource:
dynamic: # 多数据源配置
primary: master
datasource:
master:
# MYSQL数据库 主库,业务库
name: jeelowcode_pre_master
url: jdbc:dm://127.0.0.1:5236?schema=LOWCODE_MASTER&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
username: SYSDBA
password: 83kTnuLWPczi
jeelowcode: # 从库,框架库
name: jeelowcode_pre_frame
url: jdbc:dm://127.0.0.1:5236?schema=LOWCODE_FRAME&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
username: SYSDBA
password: 83kTnuLWPczi
slave: # 日志库单独
name: dev_jeelowcode_log
lazy: true # 开启懒加载,保证启动速度
url: jdbc:dm://127.0.0.1:5236?schema=LOWCODE_LOG&compatibleMode=oracle&socketTimeout=60000&connectTimeout=30000
username: SYSDBA
password: 83kTnuLWPczi
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: 127.0.0.1 # 地址
port: 16379 # 端口(单元测试,使用 16379 端口)
database: 0 # 数据库索引
mybatis:
lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试
# 芋道配置项,设置当前项目所有自定义的配置
jeelowcode:
captcha:
enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试;
demo: false # 关闭演示模式
debug: true #是否开启调试模式
#AES加解密 key 重新生成AesUtil.genAesKey()
aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm