boyue_jnpf/jnpf-java-boot
2025-06-30 09:38:03 +08:00
..
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00
2025-06-30 09:38:03 +08:00

特别说明源码、JDK、数据库、Redis等安装或存放路径禁止包含中文、空格、特殊字符等

一 技术栈

  • 编辑语言:Java8/11Java17/21
  • 主框架:Spring Boot 2.7/3.2 + Spring Framework
  • 持久层框架:MyBatis-Plus
  • 数据库连接池:Alibaba Druid
  • 多数据源:Dynamic-Datasource
  • 数据库兼容: MySQL(默认)、SQLServerOraclePostgreSQL达数据库人大金仓数据库
  • 分库分表解决方案:Apache ShardingSphere
  • 权限认证框架:Sa-Token+JWT
  • 代码生成器:MyBatis-Plus-Generator
  • 流程引擎:Flowable 6.7
  • 模板引擎:Velocity
  • 任务调度:XXL-JOB
  • 分布式锁:Lock4j
  • JSON序列化: Jackson&Fastjson
  • 缓存数据库:Redis
  • 校验框架:Validation
  • 分布式文件存储:兼容MinIO及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS等
  • 工具类框架:HutoolLombok
  • 接口文档:Knife4j
  • 项目构建:Maven

二 环境要求

2.1 开发环境

类目 版本说明或建议
硬件 开发电脑建议使用I3及以上CPU16G及以上内存
操作系统 Windows 10/11MacOS
JDK 默认使用JDK 21如需要切换JDK 8/11/17版本请参考文档调整代码推荐使用 OpenJDK,如 Liberica JDKEclipse TemurinAlibaba DragonwellBiSheng 等发行版;
Maven 依赖管理工具,推荐使用 3.6.3 及以上版本
Redis 数据缓存,推荐使用 5.0 及以上版本
数据库 兼容 MySQL 5.7.x/8.xSQLServer 2012+Oracle 11gPostgreSQL 12+达梦数据库(DM8)人大金仓数据库(KingbaseES_V8R6)
IDE 代码集成开发环境,推荐使用 IDEA2024 及以上版本,兼容 EclipseSpring Tool Suite 等IDE工具
文件存储 默认使用本地存储,兼容 MinIO 及多个云对象存储,如 阿里云 OSS华为云 OBS七牛云 Kodo腾讯云 COS 等;

2.2 运行环境

适用于测试或生产环境

类目 版本说明或建议
服务器配置 建议至少在 4C/16G/50G 的机器配置下运行;
操作系统 建议使用 Windows Server 2019 及以上版本或主流 Linux 发行版本,推荐使用 Linux 环境;兼容 统信UOSOpenEuler麒麟服务器版 等信创环境;
JRE 默认使用JRE 21如需要切换JRE 8/11/17版本请参考文档调整代码推荐使用 OpenJDK,如 Liberica JDKEclipse TemurinAlibaba DragonwellBiSheng 等发行版;
Redis 数据缓存,推荐使用 5.0 及以上版本
数据库 兼容 MySQL 5.7.x/8.xSQLServer 2012+Oracle 11gPostgreSQL 12+达梦数据库(DM8)人大金仓数据库(KingbaseES_V8R6)
中间件(兼容)) 东方通 Tong-web、金蝶天燕-应用服务器AAS v10
文件存储 默认使用本地存储,兼容 MinIO 及多个云对象存储,如 阿里云 OSS华为云 OBS七牛云 Kodo腾讯云 COS 等;

三 IDEA插件

  • Lombok(必须)
  • Alibaba Java Coding Guidelines
  • MybatisX

四 Maven私服配置

建议使用 Apache Maven 3.6.3 及以上版本
以解决依赖无法从公共Maven仓库下载的问题
通过官方私服下载依赖完成后由于IDEA的缓存可能会出现部分报红重启IDEA即可

打开Maven安装目录中的 conf/settings.xml 文件,
<servers></servers> 中添加如下内容

<server>
  <id>maven-releases</id>
  <username>jnpf-user</username>
  <password>HLrQ0MA%S1nE</password>
</server>

<mirrors></mirrors> 中添加

<mirror>
  <id>maven-releases</id>
  <mirrorOf>*</mirrorOf>
  <name>maven-releases</name>
  <url>https://repository.jnpfsoft.com/repository/maven-public/</url>
</mirror>

五 配套项目

项目 分支 说明
后端
jnpf-common v5.2.x-stable java基础依赖项目源码
jnpf-datareport v5.2.x-stable 报表后端项目源码
jnpf-file-core-starter v5.2.x-stable 文件基础依赖项目源码
jnpf-file-preview v5.1.xstable 本地文档预览项目源码
jnpf-java-datareport-univer v5.2.x-stable Java Univer报表源码
jnpf-java-datareport-univer-core v5.2.x-stable Java Univer报表核心依赖源码不同销售版本交付有所差异具体实际交付为准
jnpf-java-tenant v5.2.x-stable 多租户后端源码,不同销售版本交付有所差异,具体实际交付为准
jnpf-scheduletask v5.2.x-stable 任务调度客户端依赖及服务端项目源码
jnpf-workflow v1.0.0-stable 流程引擎后端项目
jnpf-workflow-core v1.0.0-stable Flowable流程引擎基础依赖不同销售版本交付有所差异具体实际交付为准
前端
jnpf-web-datareport v5.2.x-stable 报表前端项目源码
jnpf-web-datascreen-vue3 v5.2.x-stable 前端大屏项目源码Vue3
jnpf-web-tenant-vue3 v5.2.x-stable 多租户前端项目源码Vue3不同销售版本交付有所差异具体实际交付为准
jnpf-web-vue3 v5.2.x-stable 前端主项目源码Vue3
移动端
jnpf-app-vue3 v5.2.x-stable 移动端项目源码(Vue3)
静态资源
jnpf-resources v5.2.x-stable 静态资源
数据库
jnpf-database v5.2.x-stable 数据库脚本或文件

六 开发环境

6.1 导入数据库脚本

以 MySQL数据库为例
字符集:utf8mb4
排序规则:utf8mb4_general_ci

6.1.1 创建平台数据库

在MySQL中创建 jnpf_init 数据库,并将 jnpf-database/MySQL/jnpf_db_init.sql 方式导入。
若需要使用纯净数据库不含Demo示例则以【新建查询】方式导入 jnpf_dbnull_init.sql 。 若有更新脚本(Update目录下),按日期顺序执行更新

6.1.2 创建系统调度数据库

在MySQL创建 jnpf_xxjob 数据库,并将 jnpf-database/MySQL/jnpf_xxjob_init.sql 导入;

6.1.3 创建流程数据库

在MySQL创建 jnpf_flow 数据库,并将 jnpf-database/MySQL/jnpf_flow_init.sql 导入;

6.2 导入依赖

6.2.1 基础依赖

详见 jnpf-common 项目中的 README.md 文档说明

6.2.2 文件基础依赖

详见 jnpf-file-starter 项目中的 README.md 文档说明

6.2.3 导入系统调度服务端

详见 jnpf-scheduletask 项目中的 README.md 文档说明

6.3 配套项目

6.3.1 jnpf-datareport 报表后端项目

详见 jnpf-datareport 项目中的 README.md 文档说明

6.3.2 jnpf-java-datareport-univer Java Univer报表后端项目

详见 jnpf-java-datareport-univer 项目中的 README.md 文档说明

6.3.3 jnpf-workflow 工作流引擎后端项目

详见 jnpf-workflow 项目中的 README.md 文档说明

6.4 项目配置

打开编辑 jnpf-admin/src/main/resources/application.yml

6.4.1 指定环境配置

环境说明:

  • application-dev.yml 开发环境(默认)
  • application-test.yml 测试环境
  • application-preview.yml 预发布环境
  • application-prod.yml 生产环境

以开发环境为例,根据实际需求修改

# application.yml第6行,可选值dev(开发环境-默认)、test(测试环境)、preview(预生产)、prod(生产环境)
active: dev

6.4.2 配置域名

打开编辑 jnpf-admin/src/main/resources/application.yml ,修改以下配置

  PreviewType: kkfile #文件预览方式 1.yozo 2.kkfile默认使用kkfile
  kkFileUrl: http://127.0.0.1:30090/FileServer/ #kkfile文件预览服务地址
  ApiDomain: http://127.0.0.1:30000 #后端域名(文档预览中使用)
  FrontDomain: http://127.0.0.1:3000 #前端域名(文档预览中使用)
  AppDomain: http://127.0.0.1:8080 #app/h5端域名配置(文档预览中使用)
  FlowDomain: http://127.0.0.1:31000 #流程引擎接口地址

6.4.3 数据源配置

配置参数说明:

  • db-type:数据库类型(可选值:MySQLSQLServerOraclePostgreSQLDMKingbaseES
  • host:数据库主机地址
  • port:数据库端口
  • dbname:平台初始库
  • username:数据库用户名
  • password:数据库密码
  • db-schema:数据库模式
  • prepare-url自定义JDBC连接配置

打开编辑 jnpf-admin/src/main/resources/application-dev.yml,修改以下配置

6.4.3.1 MySQL数据库
  datasource:
    db-type: MySQL
    host: 127.0.0.1
    port: 3306
    db-name: jnpf_init
    username: dbuser
    password: dbpasswd
    db-schema:
    prepare-url:
6.4.3.2 SQLServer数据库
  datasource:
    db-type: SQLServer
    host: 127.0.0.1
    port: 1433
    db-name: jnpf_init
    username: dbuser
    password: dbpasswd
    db-schema:
    prepare-url:
6.4.3.3 Oracle数据库
  datasource:
    db-type: Oracle
    host: 127.0.0.1
    port: 1521
    db-name:
    username: JNPF_INIT
    password: dbpasswd
    db-schema:
    prepare-url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
6.4.3.4 PostgreSQL数据库配置
  datasource:
    db-type: PostgreSQL
    host: 127.0.0.1
    port: 5432
    db-name: jnpf_init
    username: dbuser
    password: dbpasswd
    db-schema: public
    prepare-url:
6.4.3.5 达梦DM8数据库
  datasource:
    db-type: DM
    host: 127.0.0.1
    port: 5236
    db-name: JNPF_INIT
    username: DBUSER
    password: dbpasswd
    db-schema: 
    prepare-url:
    tablespace: MAIN
6.4.3.6 人大金仓KingbaseES_V8R6数据库
  datasource:
    db-type: KingbaseES
    host: 127.0.0.1
    port: 54321
    db-name: jnpf_init
    username: dbuser
    password: dbpasswd
    db-schema:
    prepare-url:

6.4.4 Redis配置

打开编辑 jnpf-admin/src/main/resources/application-dev.yml,修改以下配置

支持单机模式和集群模式,配置默认为单机模式

若使用Redis单机模式

  redis:
    database: 1 #缓存库编号
    host: 127.0.0.1
    port: 6379
    password: 123456  # 密码为空时,请将本行注释
    timeout: 3000 #超时时间(单位:秒)
    lettuce: #Lettuce为Redis的Java驱动包
      pool:
        max-active: 8 # 连接池最大连接数
        max-wait: -1ms  # 连接池最大阻塞等待时间(使用负值表示没有限制)
        min-idle: 0 # 连接池中的最小空闲连接
        max-idle: 8 # 连接池中的最大空闲连接

若使用Redis集群模式

 redis:
   cluster:
     nodes:
       - 192.168.0.225:6380
       - 192.168.0.225:6381
       - 192.168.0.225:6382
       - 192.168.0.225:6383
       - 192.168.0.225:6384
       - 192.168.0.225:6385
   password: 123456 # 密码为空时,请将本行注释
   timeout: 3000 # 超时时间(单位:秒)
   lettuce: #Lettuce为Redis的Java驱动包
     pool:
       max-active: 8 # 连接池最大连接数
       max-wait: -1ms  # 连接池最大阻塞等待时间(使用负值表示没有限制)
       min-idle: 0 # 连接池中的最小空闲连接
       max-idle: 8 # 连接池中的最大空闲连接

6.4.5 静态资源配置

打开编辑 jnpf-admin/src/main/resources/application-dev.yml ,修改以下配置

默认使用本地存储,兼容 MinIO 及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS等

  # ===================== 文件存储配置 =====================
  file-storage: #文件存储配置,不使用的情况下可以不写
    default-platform: local-plus-1 #默认使用的存储平台
    thumbnail-suffix: ".min.jpg" #缩略图后缀,例如【.min.jpg】【.png】
    local-plus: # 本地存储升级版
      - platform: local-plus-1 # 存储平台标识
        enable-storage: true  #启用存储
        enable-access: true #启用访问(线上请使用 Nginx 配置,效率更高)
        domain: "" # 访问域名例如“http://127.0.0.1:8030/”,注意后面要和 path-patterns 保持一致,“/”结尾,本地存储建议使用相对路径,方便后期更换域名
        base-path: D:/project/jnpf-resources/ # 基础路径
        path-patterns: /** # 访问路径
        storage-path:  # 存储路径
    aliyun-oss: # 阿里云 OSS ,不使用的情况下可以不写
      - platform: aliyun-oss-1 # 存储平台标识
        enable-storage: false  # 启用存储
        access-key: ??
        secret-key: ??
        end-point: ??
        bucket-name: ??
        domain: ?? # 访问域名,注意“/”结尾例如https://abc.oss-cn-shanghai.aliyuncs.com/
        base-path: hy/ # 基础路径
    qiniu-kodo: # 七牛云 kodo ,不使用的情况下可以不写
      - platform: qiniu-kodo-1 # 存储平台标识
        enable-storage: false  # 启用存储
        access-key: ??
        secret-key: ??
        bucket-name: ??
        domain: ?? # 访问域名,注意“/”结尾例如http://abc.hn-bkt.clouddn.com/
        base-path: base/ # 基础路径
    tencent-cos: # 腾讯云 COS
      - platform: tencent-cos-1 # 存储平台标识
        enable-storage: false  # 启用存储
        secret-id: ??
        secret-key: ??
        region: ?? #存仓库所在地域
        bucket-name: ??
        domain: ?? # 访问域名,注意“/”结尾例如https://abc.cos.ap-nanjing.myqcloud.com/
        base-path: hy/ # 基础路径
    minio: # MinIO由于 MinIO SDK 支持 AWS S3其它兼容 AWS S3 协议的存储平台也都可配置在这里
      - platform: minio-1 # 存储平台标识
        enable-storage: true  # 启用存储
        access-key: Q9jJs2b6Tv
        secret-key: Thj2WkpLu9DhmJyJ
        end-point: http://192.168.0.207:9000/
        bucket-name: jnpfsoftoss
        domain:  # 访问域名,注意“/”结尾例如http://minio.abc.com/abc/
        base-path:  # 基础路径

6.4.6 第三方登录配置

打开编辑 jnpf-admin/src/main/resources/application-dev.yml ,修改以下配置

配置默认关闭

socials:
  # 第三方登录功能开关(false-关闭true-开启)
  socials-enabled: false
  config:
    - # 微信
      provider: wechat_open
      client-id: your-client-id
      client-secret: your-client-secret
    - # qq
      provider: qq
      client-id: your-client-id
      client-secret: your-client-secret
    - # 企业微信
      provider: wechat_enterprise
      client-id: your-client-id
      client-secret: your-client-secret
      agentId: your-agentId
    - # 钉钉
      provider: dingtalk
      client-id: your-client-id
      client-secret: your-client-secret
      agentId: your-agentId
    - # 飞书
      provider: feishu
      client-id: your-client-id
      client-secret: your-client-secret
    - # 小程序
      provider: wechat_applets
      client-id: your-client-id
      client-secret: your-client-secret

6.4.7 任务调度配置

打开编辑 jnpf-admin/src/main/resources/application-dev.yml ,修改以下配置,调整 xxl.job.admin.addresses 地址

xxl:
  job:
    accessToken: '432e62f3b488bc861d91b0e274e850cc'
    i18n: zh_CN
    logretentiondays: 30
    triggerpool:
      fast:
        max: 200
      slow:
        max: 100
    # xxl-job服务端地址
    admin:
      addresses: http://127.0.0.1:30020/xxl-job-admin/
    executor:
      address: ''
      appname: xxl-job-executor-sample1
      ip: ''
      logpath: /data/applogs/xxl-job/jobhandler
      logretentiondays: 30
      port: 9999
  # rest调用xxl-job接口地址
  admin:
    register:
      handle-query-address: ${xxl.job.admin.addresses}api/handler/queryList
      job-info-address: ${xxl.job.admin.addresses}api/jobinfo
      log-query-address: ${xxl.job.admin.addresses}api/log
      task-list-address: ${xxl.job.admin.addresses}api/ScheduleTask/List
      task-info-address: ${xxl.job.admin.addresses}api/ScheduleTask/getInfo
      task-save-address: ${xxl.job.admin.addresses}api/ScheduleTask
      task-update-address: ${xxl.job.admin.addresses}api/ScheduleTask
      task-remove-address: ${xxl.job.admin.addresses}api/ScheduleTask/remove
      task-start-or-remove-address: ${xxl.job.admin.addresses}api/ScheduleTask/updateTask

七 启动项目

找到jnpf-admin/src/main/java/JnpfAdminApplication.java,右击运行即可。

八 项目发布

  • 在IDEA中双击右侧Maven中 jnpf-java-boot > Lifecycle > clean 清理项目
  • 在IDEA中双击右侧Maven中 jnpf-java-boot > Lifecycle > package 打包项目
  • 打开 jnpf-java-boot\jnpf-admin\target,将 jnpf-admin-5.2.0-RELEASE.jar 上传至服务器

九 接口文档

  • http://localhost:30000/doc.html