econets-vue开发指南 econets-vue开发指南
首页
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • 公众号手册
  • CRM手册
  • 运维手册
GitHub (opens new window)
首页
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • 公众号手册
  • CRM手册
  • 运维手册
GitHub (opens new window)
  • 萌新必读

    • 简介
    • 功能列表
    • 快速启动(后端项目)
    • 快速启动(前端项目)
    • 技术选型
    • 项目结构
    • 代码热加载
    • 一键改包
    • 删除功能
    • 内网穿透
  • 后端手册

    • 新建服务
      • 1. 新建 demo 模块
      • 2. 新建 demo-api 子模块
      • 3. 新建 demo-biz 子模块
      • 4. 新建 RESTful API 接口
      • 5. 引入 demo 模块
      • 6. 访问接口返回 404?
      • 7. 补充说明
        • 7.1 接口分组
        • 7.2 MyBatis 日志
    • 代码生成【单表】(新增功能)
    • 代码生成【主子表】
    • 代码生成(树表)
    • 功能权限
    • 数据权限
    • 用户体系
    • 三方登录
    • OAuth 2.0(SSO 单点登录)
    • SaaS 多租户【字段隔离】
    • SaaS 多租户【数据库隔离】
    • WebSocket 实时通信
    • 13异常处理(错误码)
    • 参数校验
    • 分页实现
    • 文件存储(上传下载)
    • Excel 导入导出
    • 系统日志
    • MyBatis 数据库
    • MyBatis 联表&分页查询
    • 多数据源(读写分离)
    • Redis 缓存
    • 本地缓存
    • 异步任务
    • 配置管理
    • 工具类 Util
    • 单元测试
    • 分布式锁
    • 幂等性(防重复提交)
    • 数据库文档
    • 验证码
  • 中间件手册

    • 定时任务
    • 消息队列(内存)
    • 消息队列(Redis)
    • 消息队列(RocketMQ)
    • 消息队列(RabbitMQ)
    • 消息队列(Kafka)
    • 限流熔断
  • 工作流手册

    • 工作流(Flowable)会签、或签
目录

新建服务

本章节,将介绍如何新建名字为 blossom-module-demo 的示例模块,并添加 RESTful API 接口。

虽然内容看起来比较长,是因为艿艿写的比较详细,大量截图,保姆级教程!其实只有五个步骤,保持耐心,跟着艿艿一点点来。🙂 完成之后,你会对整个 项目结构有更充分的了解。

# 1. 新建 demo 模块

① 选择 File -> New -> Module 菜单,如下图所示:

② 选择 Maven 类型,并点击 Next 按钮,如下图所示:

③ 选择父模块为 blossom,输入名字为 blossom-module-demo,并点击 Finish 按钮,如下图所示:

④ 打开 blossom-module-demo 模块,删除 src 文件

⑤ 打开 blossom-module-demo 模块的 pom.xml 文件,修改内容如下:

<?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>
        <artifactId>blossom</artifactId>
        <groupId>cn.econets.boot</groupId>
        <version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>blossom-module-demo</artifactId>
    <packaging>pom</packaging> <!-- 2. 新增 packaging 为 pom -->

    <name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
    <description> <!-- 4. 新增 description 为该模块的描述 -->
        demo 模块,主要实现 XXX、YYY、ZZZ 等功能。
    </description>

</project>

# 2. 新建 demo-api 子模块

① 新建 blossom-module-demo-api 子模块,整个过程和“新建 demo 模块”是一致的,如下图所示:

② 打开 blossom-module-demo-api 模块的 pom.xml 文件,修改内容如下:

<?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>
        <artifactId>blossom-module-demo</artifactId>
        <groupId>cn.econets.boot</groupId>
        <version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>blossom-module-demo-api</artifactId>
    <packaging>jar</packaging> <!-- 2. 新增 packaging 为 jar -->

    <name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
    <description> <!-- 4. 新增 description 为该模块的描述 -->
        demo 模块 API,暴露给其它模块调用
    </description>

    <dependencies>  <!-- 5. 新增 blossom-common 依赖 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-common</artifactId>
        </dependency>
    </dependencies>

</project>

③ 【可选】新建 cn.econets.blossom.module.demo 基础包,其中 demo 为模块名。之后,新建 api 和 enums 包。如下图所示:

# 3. 新建 demo-biz 子模块

① 新建 blossom-module-demo-biz 子模块,整个过程和“新建 demo 模块”也是一致的,如下图所示:

② 打开 blossom-module-demo-biz 模块的 pom.xml 文件,修改成内容如下:

<?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>
        <artifactId>blossom-module-demo</artifactId>
        <groupId>cn.econets.boot</groupId>
        <version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging> <!-- 2. 新增 packaging 为 jar -->

    <artifactId>blossom-module-demo-biz</artifactId>

    <name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
    <description> <!-- 4. 新增 description 为该模块的描述 -->
        demo 模块,主要实现 XXX、YYY、ZZZ 等功能。
    </description>

    <dependencies>  <!-- 5. 新增依赖,这里引入的都是比较常用的业务组件、技术组件 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-module-demo-api</artifactId>
            <version>${revision}</version>
        </dependency>

        <!-- 业务组件 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-spring-boot-starter-biz-operatelog</artifactId>
        </dependency>

        <!-- Web 相关 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-spring-boot-starter-security</artifactId>
        </dependency>

        <!-- DB 相关 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-spring-boot-starter-mybatis</artifactId>
        </dependency>

        <!-- Test 测试相关 -->
        <dependency>
            <groupId>cn.econets.boot</groupId>
            <artifactId>blossom-spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>
    
</project>

③ 【必选】新建 cn.econets.blossom.module.demo 基础包,其中 demo 为模块名。之后,新建 controller.admin 和 controller.user 等包。

④ 打开 Maven 菜单,点击刷新按钮,让引入的 Maven 依赖生效。如下图所示:

# 4. 新建 RESTful API 接口

① 在 controller.admin 包,新建一个 DemoTestController 类,并新建一个 /demo/test/get 接口。代码如下:

package cn.econets.blossom.module.demo.controller.admin;

import cn.econets.blossom.framework.common.pojo.CommonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import static cn.econets.blossom.framework.common.pojo.CommonResult.success;

@Tag(name = "管理后台 - Test")
@RestController
@RequestMapping("/demo/test")
@Validated
public class DemoTestController {

    @GetMapping("/get")
    @Operation(summary = "获取 test 信息")
    public CommonResult<String> get() {
        return success("true");
    }

}

注意,/demo 是该模块所有 RESTful API 的基础路径,/test 是 Test 功能的基础路径。

① 在 controller.app 包,新建一个 AppDemoTestController 类,并新建一个 /demo/test/get 接口。代码如下:

package cn.econets.blossom.module.demo.controller.app;

import cn.econets.blossom.framework.common.pojo.CommonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import static cn.econets.blossom.framework.common.pojo.CommonResult.success;

@Tag(name = "用户 App - Test")
@RestController
@RequestMapping("/demo/test")
@Validated
public class AppDemoTestController {

    @GetMapping("/get")
    @Operation(summary = "获取 test 信息")
    public CommonResult<String> get() {
        return success("true");
    }

}

在 Controller 的命名上,额外增加 App 作为前缀,一方面区分是管理后台还是用户 App 的 Controller,另一方面避免 Spring Bean 的名字冲突。

可能你会奇怪,这里我们定义了两个 /demo/test/get 接口,会不会存在重复导致冲突呢?答案,当然是并不会。原因是:

  • controller.admin 包下的接口,默认会增加 /admin-api,即最终的访问地址是 /admin-api/demo/test/get
  • controller.app 包下的接口,默认会增加 /app-api,即最终的访问地址是 /app-api/demo/test/get

# 5. 引入 demo 模块

① 在 blossom-server 模块的 pom.xml 文件,引入 blossom-module-demo-biz 子模块,并点击 Maven 刷新。

② 运行 ServerApplication 类,将后端项目进行启动。启动完成后,使用浏览器打开 http://127.0.0.1:58080/doc.html (opens new window)地址,进入 Swagger 接口文档。

③ 打开“管理后台 - Test”接口,进行 /admin-api/demo/test/get 接口的调试,如下图所示:

④ 打开“用户 App - Test”接口,进行 /app-api/demo/test/get 接口的调试,如下图所示:

# 6. 访问接口返回 404?

请检查,你新建的模块的 package 包名是不是在 cn.econets.blossom.module 下!

如果不是,修改 ServerApplication (opens new window)类,增加新建的模块的 package 包名。例如说:

@SpringBootApplication(scanBasePackages = {"${blossom.info.base-package}.server", "${blossom.info.base-package}.module",
    "xxx.yyy.zzz"}) // xxx.yyy.zzz 是你新建的模块的 `package` 包名

# 7. 补充说明

# 7.1 接口分组

如果你想 Swagger 有该模块的接口分组,则需要新建 GroupedOpenApi Bean。如下图所示:

# 7.2 MyBatis 日志

如果你希望新模块的 MyBatis 查询会打印 SQL 日志,需要在 logging.level 配置对应的 Logger。如下图所示:

上次更新: 2024/01/22, 14:52:20
内网穿透
代码生成【单表】(新增功能)

← 内网穿透 代码生成【单表】(新增功能)→

Theme by Vdoing | Copyright © 2019-2024 EcoNets Tech | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式