Files
saas-mbr/abacus.springboot.example

abacus.base.demo

是前后端分离的基于 Spring Boot 的基础项目,作为使用 agent 应用开发前后端项目的基础模板。本项目自身不包含业务 Java 代码,业务能力由 abacus 框架(abacus.configabacus.commonsabacus.fundationabacus.business.service 等)提供,开发者/agent 在本模板上添加业务模块即可。

技术栈

说明
构建 Maven,父工程 abacus.framework:abacus.springcloud.pom:1.5.0
框架 Spring Boot + abacus 系列框架(配置、通用、基础、业务服务)
注册/配置中心 Nacos(见 bootstrap.yml
数据库 MySQL / SQL Server / Oracle / 达梦,Druid 连接池 + JPA
定时任务 XXL-JOBapplication-xxljob.yml
消息队列 Kafka
接口文档 springdocOpenAPI
监控 Spring Actuator + Prometheus

目录结构

abacus.base.demo/
├── pom.xml                        # Maven 构建配置:依赖、多环境 profile(dev/test/prod)、打包插件
├── assembly.xml                   # Maven 发布包(zip)打包规则:jar + doc + sql + html
├── .project / .classpath          # Eclipse IDE 工程配置(Java + Maven 项目)
├── .settings/                     # Eclipse 偏好配置(编码、JDK、m2e)
├── src/
│   └── main/
│       ├── java/                  # 【业务代码目录】Java 源码(当前为空,新增业务代码放这里)
│       ├── resources/
│       │   ├── config/
│       │   │   ├── dev/           # dev 环境配置(Maven profile 默认激活)
│       │   │   │   ├── application.yml          # 主配置:端口、数据源、JPA、Druid、Kafka、springdoc、abacus 扫描路径等
│       │   │   │   ├── bootstrap.yml            # 启动引导配置:应用名、Nacos 注册中心/配置中心
│       │   │   │   ├── application-xxljob.yml   # XXL-JOB 调度中心与执行器配置
│       │   │   │   ├── logback-spring.xml       # 应用日志配置
│       │   │   │   └── logback-access.xml       # 访问日志配置
│       │   │   ├── test/          # test 环境配置(与 dev 文件同名同结构)
│       │   │   └── prod/          # prod 环境配置(与 dev 文件同名同结构)
│       │   ├── doc/
│       │   │   └── 升级日志.md     # 版本升级日志,按版本记录更新说明
│       │   ├── sql/
│       │   │   ├── table/
│       │   │   │   ├── mysql.sql         # MySQL 建表 DDL(示例表 example_category
│       │   │   │   └── sqlserver.sql     # SQL Server 建表 DDL(与 mysql.sql 对应)
│       │   │   ├── data/
│       │   │   │   └── sqlserver.sql     # 初始化数据(acas 子系统/菜单/模块注册)
│       │   │   └── upgrade.xml           # 数据库版本升级 SQL 配置(按版本号执行,支持多库语法翻译)
│       │   ├── vue/              # 【Vue 项目源码目录】存放 vue 项目,映射过来的,前后端分离(当前为空)
│       │   └── html/             # 【前端构建产物目录】存放 vue 项目编译后的 html 等静态资源(当前为空,由 assembly.xml 打入发布包)
│       └── (META-INF)            # 若存在,会按 pom.xml 配置打入发布包
└── target/                       # Maven 构建输出目录(编译产物、打包 zip,可忽略/删除)

关键配置说明(agent 开发时必须了解)

1. pom.xml

  • 多环境 profiledev(默认)/ test / prod,通过 -P 指定,决定加载 src/main/resources/config/<env>/ 下的配置。
  • 打包资源:仅打包 META-INF、当前环境 config 目录、sql/** 到 jar 内;docsqlhtml 通过 assembly.xml 额外打入 zip 发布包。
  • 发布包:mvn package 生成 ${artifactId}-${version}-bin.zip(含 jar + doc + sql + html)。

2. application.yml(以 dev 为例,三个环境结构一致)

  • server.port:服务端口(示例 9003)。
  • spring.datasourceDruid 数据源;enableMultiSource 可开启多数据源(multidb0~multidb9 预设 10 个),含 defaultDB 默认库、readDB 读库、dynamicRelation 业务路由配置。
  • spring.jpaJPA/Hibernate 配置,命名策略使用框架的 LowercaseNamingStrategyStandardImpl
  • spring.kafkaKafka 生产/消费配置。
  • springdoc.packages-to-scan:在线接口文档扫描的包路径。
  • abacus.controllerPackages / abacus.entitypackages框架扫描 Controller 与实体的包路径,新增业务代码必须将包名加入此配置(示例包前缀 abacus.springboot.example)。
  • abacus.responseExcludePath:不被统一响应体包装器拦截的 URI。
  • management.endpoints.web.base-pathActuator 端点基础路径(/services/actuator)。

3. bootstrap.yml

  • spring.application.name:应用名(示例 example),Nacos 中需唯一。
  • spring.cloud.nacos:Nacos 服务地址、账号、命名空间;通过 extension-configs 引入公共配置(abacus-discovery.ymlabacus-acas.ymlabacus-redis.yml 等)。

4. sql/ 目录

  • table/:建表 DDL,按数据库分文件(mysql.sql / sqlserver.sql),新建业务表需同步维护两个文件。
  • data/:初始化数据(子系统、菜单、模块注册,依赖 acas 框架)。
  • upgrade.xml:版本化升级 SQL<upgrade version="yyyy-MM-dd[.count]"> 按版本升序执行;translator="true" 时以 SQL Server 语法编写,由框架翻译到各数据库。

给 agent 的开发约定

  1. 新增 Java 代码:放入 src/main/java,包名建议以 abacus.springboot.应用名.* 为前缀(保持框架扫描配置一致,或同步修改 application.ymlabacus.controllerPackages / springdoc.packages-to-scan / abacus.entitypackages)。
  2. 新增前端 Vue 项目Vue 源码放在 src/main/resources/vue/,构建(编译)产物输出到 src/main/resources/html/,由 assembly.xml 自动打入发布包。
  3. 新增配置项:优先写入 src/main/resources/config/<env>/application.yml 对应环境,环境间保持字段一致。
  4. 数据库变更:建表写 sql/table/,历史变更写 sql/upgrade.xml,初始化数据写 sql/data/
  5. 文档与日志:功能更新记录到 src/main/resources/doc/升级日志.md
  6. 打包产物target/ 目录为构建输出,无需维护;发布包为 target/*-bin.zip
  7. 多环境配置:修改配置时需同步 dev / test / prod 三个目录(或按需仅改某环境)。
  8. pom.xml<artifactId></artifactId>建议以abacus.springboot.应用名设置