Skip to content

项目开发

README

在选定并下载了 ContiNew Admin 脚手架项目之后,如何基于它继续开发自己的项目呢?下方将以开发 [岗位管理] 为例,展示基于 ContiNew Admin 开发一个基础 CRUD 功能需求的流程。

版本确认

在开始项目开发工作之前,请确认好你所下载的 ContiNew Admin 项目版本是稳定版而非开发版(dev 分支)。 开发版存在不稳定的功能特性,也未经过维护团队集中测试,不建议作为生产项目开发模板。

请选择 下载最新的稳定版源码最新的稳定版分支(最新版本对应的 x.x.x 分支) 来进行生产项目开发。

后端最新稳定版前端最新稳定版
Giteehttps://gitee.com/continew/continew-admin/releaseshttps://gitee.com/continew/continew-admin-ui/releases
GitCodehttps://gitcode.com/continew/continew-admin/releaseshttps://gitcode.com/continew/continew-admin-ui/releases
GitHubhttps://github.com/continew-org/continew-admin/releaseshttps://github.com/continew-org/continew-admin-ui/releases

友情提示

演示环境是基于 dev 分支自动构建的,你在演示环境看到的有些功能可能是预览功能,稳定版还没上线。当然了,如果你能跟上我们的更新节奏,持续跟进更新,那你用 dev 也不是不行。

总之,dev 分支在新版本开发初期和开发末期一般也还算稳定,但新版本开发中期就很难说了,你自己衡量。

准备工作

在使用脚手架类项目时,必然要花点时间在个性化配置上,即使项目契合度很高,那项目的名称、Logo 等品牌元素也必然是要进行配置的。

下面将针对项目名称、Logo 等品牌元素的信息修改,简单进行一下介绍。

后端

修改项目模块、包名

项目模块信息和项目包名的修改较为简单,通过 IDE 进行重命名操作即可,此处不进行详细赘述,只需要注意同步更新 continew-webapi/pom.xml<properties><main-class> 打包配置。

修改 Banner

打开 continew-webapi/src/main/resources/banner.txt,修改其中的 Banner 信息,可 点击链接 进行个性生成。

   ____               _    _  _   _                          _        _             _
  / ___| ___   _ __  | |_ (_)| \ | |  ___ __      __        / \    __| | _ __ ___  (_) _ __
 | |    / _ \ | '_ \ | __|| ||  \| | / _ \\ \ /\ / /_____  / _ \  / _` || '_ ` _ \ | || '_ \
 | |___| (_) || | | || |_ | || |\  ||  __/ \ V  V /|_____|/ ___ \| (_| || | | | | || || | | |
  \____|\___/ |_| |_| \__||_||_| \_| \___|  \_/\_/       /_/   \_\\__,_||_| |_| |_||_||_| |_|

修改日志配置

continew-webapi/src/main/resources/logback-spring.xml 中,根据你的需求进行修改。

一般重点要修改的就是环境配置,如果你重命名或增加了其他环境,则需要修改 <springProfile> 标签中的 name 属性。

xml
<!-- 开发环境:只打印到控制台 -->
<springProfile name="dev">
    <!-- 如果配置的日志等级,和 application.yml 中的日志等级配置重叠,application.yml 配置优先级高 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</springProfile>

<!-- 生产环境:打印到控制台并输出到文件 -->
<springProfile name="prod">
    <root level="INFO">
        <appender-ref ref="CONSOLE_PROD"/>
        <appender-ref ref="ASYNC_FILE"/>
    </root>
    <!-- 日志保留天数(根据国家法律,网络运行状态、网络安全事件、个人敏感信息操作等相关记录,留存的日志不少于六个月,并且进行网络多机备份。) -->
    <property name="FILE_MAX_HISTORY" value="180"/>
</springProfile>

修改项目信息

打开 continew-webapi/src/main/resources/config/application.yml,修改其中的 [项目配置]。其他环境配置文件(e.g. application-prod.yml)中的项目配置信息也需进行修改。

README

如果项目未开源,则可直接删除 [许可协议信息配置]。

另外,为了便于新用户修改项目品牌元素,项目各处所使用的品牌信息已经尽可能的进行了集中整理,简单来说,你修改了下方的 [项目配置] 则已经修改了 90% 的品牌元素。

  1. 在项目代码中,通过注入 top.continew.starter.core.autoconfigure.project.ProjectProperties 来获取项目配置信息。
  2. 在其他 Spring Boot 配置部分,通过 ${} 来复用项目配置信息。e.g. 尝试在 IDE 中全局搜索一下 ${project.base-package}
yaml
--- ### 项目配置
project:
  # 名称
  name: ContiNew Admin
  # 应用名称
  app-name: continew-admin
  # 版本
  version: 3.4.1
  # 描述
  description: 持续迭代优化的前后端分离中后台管理系统框架,开箱即用,持续提供舒适的开发体验。
  # 基本包
  base-package: top.continew.admin
  ## 作者信息配置
  contact:
    name: Charles7c
    email: charles7c@126.com
    url: https://blog.charles7c.top/about/me
  ## 许可协议信息配置
  license:
    name: Apache-2.0
    url: https://github.com/continew-org/continew-admin/blob/dev/LICENSE

前端

修改 package.json

打开 continew-admin-ui/package.json,修改其中的【项目配置】。

修改 settings.json

打开 continew-admin-ui/src/config/settings.json,修改其中的【页面布局及高级配置】。

修改品牌元素

在启动前、后端项目之后(你没看错),打开 【系统管理】 -> 【系统配置】 页面,修改品牌元素:名称、Logo、版权声明等信息。

温馨提示

这些信息均存储于 sys_option(参数表)中,也可根据需要自行前往数据表修改。注意非页面操作修改配置,则需要自行清理相关 Redis 缓存。

新建模块

准备工作完成之后,接下来开始 [岗位管理] 功能需求开发。此处,将 [岗位管理] 功能划分到 [test] 模块,以方便演示新模块的创建及使用。

右键单击项目名称,依次选择【新建】 -> 【新模块】,在弹出的【新建模块】窗口,依次输入项目信息。

1

2

新增完模块之后,首先需要在 continew-admin/pom.xml 中进行版本锁定,这样内部模块之间就不用再标明版本号了。

3

然后在 continew-webapi/pom.xml 中引入新增的模块( continew-webapi 是最终打包模块)。

4

在正式使用 continew-test 模块前,还需要在 continew-test/pom.xml 中引入公共模块。

xml
<dependencies>
    <!-- 公共模块(存放公共工具类,公共配置等) -->
    <dependency>
        <groupId>top.continew</groupId>
        <artifactId>continew-common</artifactId>
    </dependency>
</dependencies>

5

新建数据表

根据需求设计岗位管理数据表,并在对应数据库创建好该表。

sql
CREATE TABLE IF NOT EXISTS `sys_post` (
    `id`          bigint(20)   AUTO_INCREMENT              COMMENT 'ID',
    `name`        varchar(30)  NOT NULL                    COMMENT '岗位名称',
    `description` varchar(200) DEFAULT NULL                COMMENT '描述',
    `sort`        int          NOT NULL DEFAULT 999        COMMENT '岗位排序',
    `status`      tinyint(1)   UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
    `is_system`   bit(1)       NOT NULL DEFAULT b'0'       COMMENT '是否为系统内置数据',
    `create_user` bigint(20)   NOT NULL                    COMMENT '创建人',
    `create_time` datetime     NOT NULL                    COMMENT '创建时间',
    `update_user` bigint(20)   DEFAULT NULL                COMMENT '修改人',
    `update_time` datetime     DEFAULT NULL                COMMENT '修改时间',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `uk_name`(`name`),
    INDEX `idx_create_user`(`create_user`),
    INDEX `idx_update_user`(`update_user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位表';

生成配置

创建好数据表后,分别启动前、后端项目,打开【系统工具】-> 【代码生成】页面,查看是否有 sys_post 岗位表记录。

6

点击 sys_post 岗位表记录的【配置】按钮,在弹出的配置对话框中,依次配置生成配置、字段配置,全都设置好后,点击【确定】按钮,关闭对话框。

7

8

代码生成

点击 sys_post 岗位表记录的【生成】按钮,在弹出的预览对话框中你可以查看、复制生成的代码,也可以直接点击【下载】,将生成的代码下载到本地。

9

10

生成完的前、后端代码,根据你个人需要分别放到前、后端项目中,然后分别重新启动前、后端项目。

温馨提示

本项目的代码生成并没有那么完美,本人由于精力及个人实际使用需求,对代码生成的要求仅仅是能生成主体框架结构即可。

在我看来,代码生成只是一个提高效率的工具,但开发代码生成工具,尤其是越完善所投入的时间和回报越不成正比。所以,至少目前它生成的 前端代码 需要你参考其他模块进行调整。

如果你的使用场景遇到了一点小问题,可以对代码生成模板进行优化完善,也非常欢迎你提交相应的 PR。

添加路由

最后,我们还需要为【岗位管理】添加菜单路由,这样我们才能访问岗位管理功能。打开【系统管理】 -> 【菜单管理】页面,根据需要添加相应岗位管理的目录、菜单、按钮等信息。

11

12

13

14

刷新下网页,就可以看到新增的菜单项了。

15

这样岗位管理就初步开发好了,剩下的就是根据你的需要进行完善调整了。

温馨提示

真实开发时,一定记得多参考已有模块代码的各组件使用方式、代码规范、风格,等你玩明白了,再做更大的调整,形成独属于你们团队的规范。