Sky Takeaway (1) 初心者に最適なJava実践プロジェクト Springboot+SSMプロジェクト「Sky Takeaway」プロジェクト実戦・メモ(超詳しく・初心者)【随時更新】

プロジェクトアドレス https://gitee.com/zhang-zakcomy/cang-qiong-take-out/

1. 環境構築 - Day01 プロジェクト概要、環境構築

ソフトウェア開発の概要

ソフトウェア開発プロセス

画像.png

  1. 需要分析

要件仕様書の完成と製品プロトタイプの作成
要件仕様書は通常 Word 文書を使用して、システム定義、アプリケーション環境、機能仕様、性能要件など、現在のプロジェクトの各コンポーネントを説明します。
製品プロトタイプは通常、現在のページが Web ページ (HTML) の形式でどのような種類のデータを表示するか、ページのレイアウトがどのように見えるか、特定のメニューをクリックするとどのページが開き、特定のボタンをクリックするとどのような内容になるかを示します。製品のプロトタイプを確認してください。

  1. デザイン

デザインの内容としては、UIデザイン、データベースデザイン、インターフェースデザインなどが挙げられます。

  1. UI デザイン: ユーザー インターフェイスのデザイン、メイン デザイン プロジェクトのページ効果 (ボタンと同じくらい小さく、ページ レイアウトと同じくらい大きい)、および人間とコンピューターの対話ロジックの具体化。
  2. データベース設計: 現在のプロジェクトにどのデータベースが含まれるか、各データベースにどのテーブルが含まれるか、これらのテーブル構造間の関係は何か、テーブル構造にどのフィールドが含まれるかを設計する必要があります。
  3. インターフェイス設計:プロトタイプ図を分析することで、まず各ページにインターフェイスがいくつあるかを大まかに分析し、次に各インターフェイスの入力パラメータと戻り値パラメータを詳細に分析し、インターフェイスのパスを明確にします。とリクエストメソッドを同時に指定します。

インターフェイスは特定のプロトコルに相当し、これにより、さまざまなコンポーネントやモジュールが互いにより適切に通信し、ソフトウェアやプロジェクトの設計で連携できるようになります。

  1. コーディング: この段階では主にソフトウェアの各モジュールと機能を実現し、設計書に従って特定のコードを記述します。この段階では、コードの品質と読みやすさに注意を払う必要があり、同時にコードの信頼性と保守性を確保するためにコーディング規範と標準に従う必要があります。
  2. テスト: この段階では主に、コンパイルされたプログラムをテストし、プログラムが要件と設計要件を満たしているかどうかを検証し、同時に潜在的な欠陥や抜け穴を発見して修正します。この段階では、詳細なテスト計画とテスト ケースを作成する必要があり、プログラムの品質と安定性を確保するために、考えられるさまざまなシナリオや状況を考慮する必要があります。
  3. オンライン運用および保守: この段階では主に、実際の運用および保守のためにプログラムを実稼働環境にデプロイします。この段階では、合理的な導入計画や運用保守計画を策定するとともに、プログラムの状態や動作をリアルタイムに監視し、問題や障害の発生を検知して対処する必要があります。間に合うように。

役割分担

ソフトウェア開発プロセス全体に精通した後は、ソフトウェア開発プロセス全体に関わる職務と各役割の責任分担も理解する必要があります。

立場・役割 対応ステージ 責任の分担
プロジェクトマネージャー すべてのステージ プロジェクト全体に責任を持ち、タスクを割り当て、進捗を管理します
プロダクトマネージャー 需要分析 需要調査、生産需要調査資料、製品プロトタイプなどを実施します。
UIデザイナー デザイン 製品プロトタイプに基づいた出力インターフェイスのレンダリング
建築家 デザイン プロジェクト全体のアーキテクチャ設計、技術選定など
開発技術者 コーディング 関数コードの実装
テストエンジニア テスト テストケースを作成してテストレポートを出力する
運用保守エンジニア オンライン運用・保守 ソフトウェア環境を構築してプロジェクトを起動する

実際のプロジェクトでは、プロジェクト チームによっては人員が逼迫しているため、専任のアーキテクトやテスターがいない場合があり、その際にはプロジェクト マネージャーやプログラマーが兼務する必要がある場合があります。

ソフトウェア環境

ソフトウェア開発エンジニアはコーディングの過程で必然的に様々なソフトウェア環境に接することになりますが、業務上よく遭遇する「開発環境」「テスト環境」「本番環境」の3つの環境を中心に分析を行っています。 。次に、これら 3 つの環境の機能と特徴を紹介します。
1). 開発環境(開発)
ソフトウェア開発者にとって、開発段階で使用される環境は開発環境であり、通常、外部ユーザーはアクセスできません。
たとえば、開発で使用する MySQL データベースやその他の一般的なソフトウェアは、ローカルまたは専用サーバーにインストールできます。これらのアプリケーション ソフトウェアは、ソフトウェア開発プロセスでのみ使用され、プロジェクトがテストされて開始されるときは、この環境は使用されません。もはや、この環境は開発環境です。
2). テスト環境 (テスト)
ソフトウェア開発エンジニアは、プロジェクトの機能モジュールを開発し、単体テストに合格した後、テスターがプロジェクトをテストできるように、プロジェクトをテスト サーバーにデプロイする必要があります。そして、このテストサーバーは、テスターが特別に使用する環境、つまりプロジェクトのテストに使用されるテスト環境であり、通常は外部ユーザーはアクセスできません。
3). 本番環境(プロダクション)
プロジェクトが開発され、テスターに​​よるテストに合格すると、プロジェクトが立ち上げられ、オンライン環境にデプロイされ、正式に外部へサービスを提供できるようになります。環境です。

まず、プロジェクトの開発は開発環境で行われます。多くの場合、開発環境は主にローカル コンピュータ環境と LAN 内の環境です。開発が完了した後、プロジェクトはテスト環境に展開されます。サーバー環境は、プロジェクトのテストに合格した後、最終的に実稼働環境に展開されます。実稼働環境は、コンピューター室やクラウドサーバーなどのオンライン環境です。

スカイテイクアウトプロジェクトのご紹介

プロジェクト紹介

このプロジェクト (Kongqiong Takeout) はケータリング企業 (レストラン、レストラン) 向けに特別にカスタマイズされたソフトウェア製品であり、システム管理の背景と小さなプログラムのターミナル アプリケーションの 2 つの部分が含まれています。その中で、システム管理の背景は主にケータリング企業の内部スタッフ向けに提供されており、レストランの分類、料理、セットメニュー、注文、従業員などを管理および保守し、レストランのさまざまなデータの統計を実行できます。ミニプログラム端末は主に消費者に提供され、オンラインで料理を閲覧したり、ショッピングカートに追加したり、注文したり、支払いや注文のリマインドなどができる。
画像.png

製品プロトタイプ

製品プロトタイプは、プロジェクトのビジネス機能を実証するために使用され、通常は製品マネージャーによって設計されます。
注:製品プロトタイプは主に、最終ページの効果ではなく、プロジェクトの機能をデモンストレーションするために使用されます。
「data」フォルダの製品プロトタイプフォルダの下には、2つの製品プロトタイプが用意されています。
画像.png
1). 管理端末は
ケータリング会社の社内従業員が使用します。主な機能は次のとおりです。

モジュール 説明する
ログイン/ログアウト 社内従業員は、システム管理のバックグラウンドにアクセスする前にログインする必要があります
従業員管理 管理者は、クエリ、追加、編集、無効化などの機能を含む従業員情報をシステムのバックグラウンドで管理できます。
カテゴリー管理 主に現在の飲食店が運営する料理や定食の分類を照会、追加、変更、削除などの機能を含めて管理・維持します。
食器管理 主に料理情報の照会、追加、変更、削除、販売開始、販売停止などをカテゴリごとに管理します。
パッケージ管理 主に現在のレストランのパッケージ情報を維持します。クエリ、追加、変更、削除、販売開始、販売停止などを含みます。
注文管理 主にユーザーがモバイル端末上で行った注文情報を保持し、照会、キャンセル、配送、完了、注文レポートのダウンロードなどの機能を含みます。
統計 主に飲食店の売上高、利用者数、注文数などの各種統計を完了します。

2). クライアント側
モバイル アプリケーションは主にコンシューマー向けに提供されます。主な機能は次のとおりです。

モジュール 説明する
ログイン/ログアウト ユーザーは、WeChat による承認後にログインし、ミニ プログラムを使用して食べ物を注文する必要があります
オーダーメニュー 注文インターフェイスでは、料理/セットのカテゴリを表示し、ユーザーがクエリして選択できるように、現在選択されているカテゴリに従って料理の情報をロードする必要があります。
注文-ショッピングカート ユーザーが選択した料理はユーザーのショッピング カートに追加されます。これには主に、ショッピング カートのクエリ、ショッピング カートへの追加、ショッピング カートの削除、ショッピング カートを空にするなどの機能が含まれます。
s ユーザーが料理/セットを選択した後、ショッピング カートで料理の代金を決済し、支払いを行うことができます。その後、注文の支払いを行う必要があります。
個人情報 現在のユーザーの基本情報がパーソナル センター ページに表示され、ユーザーは配送先住所を管理したり、過去の注文データを照会したりすることもできます。

テクノロジーの選択

画像.png
1). ユーザー層
このプロジェクトでは、H5、Vue.js、ElementUI、Apache echarts (チャート表示) などのテクノロジーを使用して、システム管理のバックグラウンドのフロントエンド ページを構築します。モバイル アプリケーションを構築するときは、WeChat アプレットを使用します。
2). ゲートウェイ層
Nginx は、主に静的リソースを展開するための Http サーバーとして使用され、高いアクセス性能を備えたサーバーです。Nginx にはさらに 2 つの重要な機能があります: リバース プロキシとロード バランシングです。プロジェクトのデプロイ中に、Tomcat のロード バランシングを実現するには、Nginx を通じて実現できます。
3). アプリケーション層
SpringBoot: Spring プロジェクトを迅速に構築し、「規約は設定よりも優れている」という考えを採用し、Spring プロジェクトの設定と開発を簡素化します。
SpringMVC: SpringMVC は spring フレームワークのモジュールであり、Springmvc と spring は中間統合層を介して統合する必要がなく、シームレスに統合できます。
Spring Task: Spring が提供するタイミング タスク フレームワーク。
httpclient: 主に http リクエストの送信を実現します。
Spring Cache: Spring によって提供されるデータ キャッシュ フレームワーク
JWT: アプリケーション上でユーザーを認証するために使用されるトークン。
Alibaba Cloud OSS: 主に写真などのファイルをプロジェクトに保存するオブジェクト ストレージ サービス。
Swagger: 開発者がインターフェイス ドキュメントを生成し、インターフェイスをテストするのを自動的に支援します。
POI: Excel テーブルに対する一般的な操作をカプセル化します。
WebSocket:クライアントとサーバー間のデータ交換を簡素化する通信ネットワークプロトコルで、プロジェクトの受注やリマインダーなどの機能を実現するために使用されます。
4). データ層
MySQL: リレーショナル データベース。このプロジェクトの中核となるビジネス データは MySQL に保存されます。
Redis: キー/値形式のストレージに基づくメモリ内データベースで、アクセス速度が速く、キャッシュとしてよく使用されます。
Mybatis: このプロジェクトの永続化レイヤーは Mybatis を使用して開発されます。
pagehelper: ページネーションプラグイン。
spring data redis: Redis を操作するための Java コードを簡素化する API。
5). ツール
git: バージョン管理ツール、チーム共同作業では、このツールを使用してプロジェクト内のコードを管理します。
maven: プロジェクトビルドツール。
junit: 単体テスト ツール 開発者は機能を実装した後、junit を使用して機能を単体テストする必要があります。
postman: ユーザーが開始したさまざまな HTTP リクエストをシミュレートし、対応する応答結果を取得するインターフェイス テスト ツール。

開発環境を構築する

フロントエンド環境構築

  1. nginxをベースとしたフロントエンドエンジニアリング

「情報」:ディレクトリアドレスに中国語が含まれない「CangqiongTakeout」という名前のフォルダーに配置されます
画像.png
画像.png画像.png

このフォルダは必ず漢字を含むディレクトリに配置してください。そうしないと起動が成功しません。

  1. nginxを起動し、アクセステストを行う

qidong nginx サービスをダブルクリックしますnginx.exe。アクセス ポート番号は 80
http://localhost:80
です。起動に成功すると、インターフェイスは次のようになります。
画像.png

バックエンド環境構築

プロジェクトの構造に精通している

バックエンド プロジェクトは、プロジェクトの作成とサブモジュールの開発のために Maven に基づいています

  1. 「データ」からバックエンドの初期プロジェクトを見つけます。

画像.png

  1. 初期プロジェクトを先ほど作成した「CangqiongTakeout」ディレクトリにコピーします。

画像.png
IDEA で最初のプロジェクトを開いてプロジェクトの構造を理解する


プロジェクトに生成されたファイルがない場合は.iml、次の設定を行う必要があります。

  1. このプロジェクトのアイデアでターミナルを開きます

画像.png

  1. 対応するモジュールを入力し、mvn idea:module コマンドを入力して、Enter キーを押します。
  2. ビルドが成功すると、対応するモジュールの下に .iml ファイルが生成されていることがわかります。

画像.png


セットアップ後の初期プロジェクト構造は次のようになります。
画像.png


プロジェクトの各モジュールの役割の説明:

シリアルナンバー 名前 説明する
1 空のテイクアウト Maven 親プロジェクト、依存関係バージョンの一元管理、他のサブモジュールの集約
2 スカイコモン サブモジュール。ツール クラス、定数クラス、例外クラスなどのパブリック クラスを格納します。
3 スカイポジョ エンティティクラス、VO、DTOなどを格納するサブモジュール。
4 スカイサーバー サブモジュール、バックエンド サービス、ストア構成ファイル、コントローラー、サービス、マッパーなど。

プロジェクトの全体的な構造を理解した後、上記の各サブモジュールを詳細に分析します。

  • sky-common: 模块中存放的是一些公共类,可以供其他模块使用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BAv4c5lv-1690964505677)(assets/image-20221107093606590.png#id=cHOSd&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)]
    | 名称 | 说明 |
    | — | — |
    | constant | 存放相关常量类 |
    | context | 存放上下文类 |
    | enumeration | 项目的枚举类存储 |
    | exception | 存放自定义异常类 |
    | json | 处理json转换的类 |
    | properties | 存放SpringBoot相关的配置属性类 |
    | result | 返回结果类的封装 |
    | utils | 常用工具类 |

  • sky-pojo: 模块中存放的是一些 entity、DTO、VO [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCSk9iUm-1690964505677)(assets/image-20221107094611987.png#id=UKsvk&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)]
    | 名称 | 说明 |
    | — | — |
    | Entity | 实体,通常和数据库中的表对应 |
    | DTO | 数据传输对象,通常用于程序中各层之间传递数据 |
    | VO | 视图对象,为前端展示数据提供的对象 |
    | POJO | 普通Java对象,只有属性和对应的getter和setter |

  • sky-server: 模块中存放的是 配置文件、配置类、拦截器、controller、service、mapper、启动类等 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dV8g7ErE-1690964505677)(assets/image-20221107094852361.png#id=z1ASu&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)]
    | 名称 | 说明 |
    | — | — |
    | config | 存放配置类 |
    | controller | 存放controller类 |
    | interceptor | 存放拦截器类 |
    | mapper | 存放mapper接口 |
    | service | 存放service类 |
    | SkyApplication | 启动类 |

git版本控制

使用Git进行项目代码的版本控制,具体操作:

  1. 创建git仓库

画像.png画像.png
当IDEA中出现画像.png时创建成功

  1. 创建git远程仓库

登录链接gitee.com,新建仓库
画像.png画像.png
点击“创建”后如下图:
画像.png

  1. 提交文件至本地仓库

画像.png
开始提交:
点击此处画像.png
画像.png画像.png

  1. 添加至git远程仓库
  • 复制远程地址

画像.png

  • 点击此处画像.png

画像.png画像.png
推送完成
刷新gitee页面:
画像.png

数据库环境搭建

画像.png
将数据库中sky.sql文件导入MySQL,间脚本代码复制到MySQL运行即可
创建出11张表
画像.png
画像.png
修改idea后端代码 的数据库 的配置信息

前后端联调

后端的初始工程中已经实现了登录功能,直接进行前后端联调测试即可

意思就是,在后端已经有了登录功能的代码了,前端也有了页面实现的代码了,现在需要将前后端联结起来

画像.png


首先,先编译一下,能够保证项目能够正常运行
画像.png
画像.png
登录一下:
双击nginx.exeqidong nginx服务,访问端口号为80
http://localhost:80

要保证前面数据库idea中将相关配置信息根据实际情况配制成自己数据库的信息

画像.png
点击登录:
画像.png

右上角的“错误”先不用管,后面会解决

nginx反向代理和负载均衡

对登录功能测试完毕后,接下来,思考一个问题:前端发送的请求,是如何请求到后端服务的?
在使用Nginx作为反向代理的Java项目中,前端发送的请求会被Nginx接收并处理,然后转发给后端服务。以下是一些基本步骤:

  1. 客户端(前端)发送请求到Nginx服务器。
  2. Nginx服务器接收请求,并根据配置的规则进行处理。
  3. Nginx根据配置的规则将请求转发给后端服务。
  4. 后端服务接收到请求并处理,然后返回响应。
  5. Nginx接收后端服务的响应,并将其返回给客户端。

在这个过程中,Nginx扮演了反向代理的角色,接收客户端的请求并转发给后端服务,同时也将后端服务的响应返回给客户端。通过Nginx,可以实现对请求的负载均衡、缓存、安全过滤等处理,提高系统的性能和安全性。


当你在浏览器中输入一个网站地址并发送请求时,这个请求首先会被Nginx服务器接收。Nginx服务器会根据你发送的请求类型、请求头、参数等来进行处理,然后决定将请求转发给哪个后端服务。这个后端服务可以是应用程序服务器、数据库服务器或其他类型的服务。
一旦后端服务接收到请求并处理完成,它会将响应返回给Nginx服务器。Nginx服务器再将这些响应返回给你所在的浏览器。在这个过程中,Nginx还可以对请求和响应进行一些处理,例如提供缓存功能、防止DDoS攻击、拦截恶意请求等,从而提高系统的性能和安全性。

在实际情况中,前端请求地址和后端接口地址通常是不一致的,这是因为前端通常只需要知道如何将请求发送到后端,而不需要知道后端的具体实现细节,包括端口、上下文路径等。

在nginx服务器中,可以通过配置反向代理来实现前后端请求的映射。具体来说,可以在nginx配置文件中添加以下配置:

location /api {
    proxy_pass http://localhost:8080/admin;
}

这样,当有请求发送到nginx服务器的/api路径时,nginx会将请求转发到后端服务器的/admin路径。
在SpringBoot项目中,也可以使用Spring Cloud Gateway等反向代理框架来实现前后端请求的映射。例如,可以配置Spring Cloud Gateway的路由规则,将/api/_路由到后端服务器的/admin/_路径。
总之,无论使用nginx还是Spring Cloud Gateway等反向代理框架,都可以实现前后端请求的映射,使得前端请求能够正确地请求到后端服务。

导入接口文档

接下来,就要进入到项目的业务开发了,而我们的开发方式就是基于当前企业主流的前后端分离开发方式,那么这种方式就要求我们之前需要先将接口定义好,这样前后端人员才能并行开发,所以,这个章节就需要将接口文档导入到管理平台,为我们后面业务开发做好准备。其实,在真实的企业开发中,接口设计过程其实是一个非常漫长的过程,可能需要多次开会讨论调整,甚至在开发的过程中才会发现某些接口定义还需要再调整,这种情况其实是非常常见的,但是由于项目时间原因,所以选择一次性导入所有的接口,在开发业务功能过程当中,也会带着大家一起来分析一下对应的接口是怎么确定下来的,为什么要这样定义,从而培养同学们的接口设计能力。

前后端分离开发流程

第一步:定义接口,确定接口的路径、请求方式、传入参数、返回参数。
第二步:前端开发人员和后端开发人员并行开发,同时,也可自测。
第三步:前后端人员进行连调测试。
第四步:提交给测试人员进行最终测试

操作步骤

  1. 找到“资料”中的接口文件

画像.png

  1. 导入到Yapi平台

登录Yapi
画像.png
画像.png画像.png
画像.png
两个操作步骤相同

Swagger

介绍

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)。 它的主要作用是:

  1. 使得前后端分离开发更加方便,有利于团队协作
  2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
  3. 功能测试
    Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!
目前,一般都使用knife4j框架。

使用步骤

  1. 导入 knife4j 的maven坐标
    在pom.xml中添加依赖
<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
  1. 在配置类中加入 knife4j 相关配置
    WebMvcConfiguration.java
/**
     * 通过knife4j生成接口文档
     * @return
*/
    @Bean
    public Docket docket() {
    
    
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("苍穹外卖项目接口文档")
                .version("2.0")
                .description("苍穹外卖项目接口文档")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
  1. 设置静态资源映射,否则接口文档页面无法访问
    WebMvcConfiguration.java
/**
     * 设置静态资源映射
     * @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
  1. 访问测试
    接口文档访问路径为 http://ip:port/doc.html —> http://localhost:8080/doc.html

画像.png画像.png
**思考:**通过 Swagger 就可以生成接口文档,那么我们就不需要 Yapi 了?
1、Yapi 是设计阶段使用的工具,管理和维护接口
2、Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

常用注解

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

注解 说明
@Api 用在类上,例如Controller,表示对类的说明
@ApiModel 用在类上,例如entity、DTO、VO
@ApiModelProperty 用在属性上,描述属性信息
@ApiOperation 用在方法上,例如Controller的方法,说明方法的用途、作用


次に、上記のアノテーションを使用して、元のコードを次のように変更します。 sky-pojo モジュールの
EmployeeLoginDTO.javaで、より読みやすいインターフェイス ドキュメントを生成します。

package com.sky.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

@Data
@ApiModel(description = "员工登录时传递的数据模型")
public class EmployeeLoginDTO implements Serializable {
    
    

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("密码")
    private String password;

}

従業員ログインVo.java

package com.sky.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "员工登录返回的数据格式")
public class EmployeeLoginVO implements Serializable {
    
    

    @ApiModelProperty("主键值")
    private Long id;

    @ApiModelProperty("用户名")
    private String userName;

    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("jwt令牌")
    private String token;

}

sky-server モジュール
EmployeeController.java内

package com.sky.controller.admin;

import com.sky.constant.JwtClaimsConstant;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.entity.Employee;
import com.sky.properties.JwtProperties;
import com.sky.result.Result;
import com.sky.service.EmployeeService;
import com.sky.utils.JwtUtil;
import com.sky.vo.EmployeeLoginVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * 员工管理
 */
@RestController
@RequestMapping("/admin/employee")
@Slf4j
@Api(tags = "员工相关接口")
public class EmployeeController {
    
    

    @Autowired
    private EmployeeService employeeService;
    @Autowired
    private JwtProperties jwtProperties;

    /**
     * 登录
     *
     * @param employeeLoginDTO
     * @return
     */
    @PostMapping("/login")
    @ApiOperation(value = "员工登录")
    public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) 	{
    
    
        //..............

        
    }

    /**
     * 退出
     *
     * @return
     */
    @PostMapping("/logout")
    @ApiOperation("员工退出")
    public Result<String> logout() {
    
    
        return Result.success();
    }

}

サービスを開始します: http://localhost:8080/doc.htmlにアクセスします。
画像.png

1時2時

  1. このプロジェクトは、直輸入のダークホースプログラマーのいわゆる「初期プロジェクト」としてスタートしました。
    1. フレームワーク、依存関係、設定などをあなたのために実現します。
  2. ビデオチュートリアルのプロセスに従って、最初にこのプロジェクトを完了してください
    1. 噛んで理解するのには適していない場所もありますが、ゴクゴクと飲みます
    2. プロジェクト全体が完成したら自然に理解できる部分もあるかもしれない
    3. 終わってみれば分からないところもあるかも知れませんが、終わってみれば分かります
  3. プロジェクトの完了またはプロジェクトの特定の段階で停止すること
    1. 丸飲みしたものを今すぐ噛めるかどうか確認してください

おすすめ

転載: blog.csdn.net/qq_64744030/article/details/132009782