介绍

通过pai工具生成我们后端工程的基本骨架,将一些基本的增删查代码通过表结构进行生成,节省了我们因搭建项目所花费的时间,让我们更加专注于业务的实现。

阅读注意:
本文以及后面的文章,所举例子涉及到的工程名称均为示例,具体工程名称以自己实际开发为主。

前置条件

  • 已将pai工具安装完好

创建后端工程

操作示例

1. pai帮助

pai create -h

2. 回车后会显示如下信息,你可以根据个人需求进行选择

pai create <命令> [参数]
示例:
创建后端工程
 pai create service -n pai-demo
 pai create service -n pai-demo -s cn.flyrise.demo

创建前端工程
 pai create front -n pai-demo-ui
 pai create front -n pai-demo-ui -m node
 pai create front -n pai-demo -s cn.flyrise.demo

创建APP小程序工程
 pai create micro -n pai-demo
 pai create micro -n pai-demo -s cn.flyrise.demo

创建数据中台工程
 pai create data -n pai-demo
 pai create data -n pai-demo -s cn.flyrise.demo

创建Docker工程
 pai create docker -n pai-demo
 pai create docker -n pai-demo -s cn.flyrise.demo

3. 创建后端工程

D:\home>pai create service 

4. 输入工程名称

Found D:\pai\pai-cli\.pai\wrapper\pai-wrapper.jar
请输入工程名称:pai-demo-attendance

命名规范:
对于后端工程建议改名为pai-xxx
对于前端工程建议改名为pai-xxx-ui

我们还可以在创建时就指定名称:

pai create service -n pai-demo-attendance
  • pai-demo-attendance除了是整个工程的名字,还会默认是这个工程对应数据库的库名
  • 之所以为什么工程名称同样是数据库的库名,这个与nacos上关于datasource 的相关配置有关,具体可以到nacos上查看相关配置文件信息。

5.给工程绑定套件(非强制性):

方式一:

D:\>pai create service -n pai-demo-attendance
Found E:\pai-cli\pai-cli\.pai\wrapper\pai-wrapper.jar

输入的套件标识将用于识别并自动把当前工程添加到套件的关联列表,可从开发中心套件中复制,如:cn.flyrise.oauth
如果暂时无法获取可以直接回车保持为空,稍后再从开发中心套件详情中手动添加关联
请输入套件标识(选填):

方式二:

D:\>pai create service -n pai-demo-attendance -s 套件标识

方式三:

开发者后台 > 我的套件 > 绑定工程。

应用套件绑定工程

5. 项目目录结构

pai-xxxx
├─src
│  └─main
│    ├─java
│    │  └─com
│    │     └─example
│    │          └─demo
│    │              │ Application.java                    // 程序启动入口
│    │              ├─config                              // 全局配置
│    │              ├─controller                          // 接口控制器
│    │              ├─dao                                 // 数据持久层
│    │              ├─exception                           // 异常处理
│    │              │   ├─BusinessErrors.java             // 错误常量
│    │              │   └─DemoBizException.java           // 业务异常类
│    │              ├─model                               // 模型层
│    │              │  ├─po                               // 持久层数据模型
│    │              │  └─vo                               // 业务层数据模型
│    │              ├─service                             // 服务逻辑层接口
│    │              │  └─impl                             // 服务逻辑层实现
│    │              └─util                                // 通用工具
│    └─resources                                          // 应用配置
│        │ ├─application.yml                              // 应用参数
│        │ ├─bootstrap-dev.yml                            // 开发域参数
│        │ ├─bootstrap-test.yml                           // 测试域参数
│        │ ├─bootstrap.yml                                // 程序引导
│        │ └─logback-config.xml                           // 日志配置
│        ├─i18n                                           // 国际化配置
│        │  └─messages.properties                         // 默认配置
│        └─mapper                                         // Mapper XML配置
├─.gitignore                                              // Git版本管理配置
├─Deployment.yaml                                         // K8s部署Deployment描述
├─Service.yaml                                            // K8s部署Service描述
├─Dockerfile                                              // Docker镜像打包描述
└─pom.xml                                                 // Maven管理配置

resourse目录下的配置文件说明

  1. logback-config.xml
    • 关于日志的一个配置文件。
  2. bootstrap-dev.yml和bootstrap-test.yml
    • 声明关于SpringCloud Config Server的一些信息。
  3. bootstrap.yml
    • 是应用程序的父上下文,加载优先于 application。
    • 主要声明了端口号和环境配置的一些信息。
  4. application.yml
    • 容器启动默认扫描的配置文件,同目录下优先级低于bootstrap配置文件。
    • 主要配置mybatis,swagger,security等。
  5. messages.properties
    • 关于异常错误信息的配置文件。

其中Application就是我们工程的启动类

@EnablePaiResourceServer
@SpringCloudApplication
@EnablePaiFeignClients("cn.flyrise.*")
@EnableAspectJAutoProxy(exposeProxy = true)
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

注解说明:

@EnablePaiResourceServer

  • 意味着服务(就OAuth 2.0而言 – 资源服务器)需要访问令牌才能进行请求。
  • 在调用资源服务器之前,应通过OAuth 2.0客户端从授权服务器获取访问令牌。
  • 如果注释掉此注解,会走原生SpringSecurity,从而需要登陆,就算登陆成功,在调用资源服务器也可能面临被拒绝访问。

@EnablePaiFeignClients

  • 启用feign客户端。
  • 将远端服务映射成为本地方法进行调用。
  • 扫描和注册feign客户端bean定义。

@SpringCloudApplication

  • 启动类,用于启动容器

@EnableAspectJAutoProxy

  • 启用AOP动态代理
文档更新时间: 2024-03-25 11:23   作者:朱灿奕