スプリングブート2-vue3
springboot2 と vue3 をベースにした共通のバックグラウンド テンプレートで、冗長な機能はなく、権限管理と共通機能のみが含まれます。フロントエンドとバックエンドの分離プロジェクト、コードは 90% 合格Alibaba コーディング規約のスキャンとバグ検出
新しいバージョンのアドレス
スタートガイド
次のガイドは、開発とテストのためにローカル マシンにプロジェクトをインストールして実行するのに役立ちます。このプロジェクトをオンライン環境に展開する方法については、展開セクションを参照してください。
インストール要件と手順
- Java環境、 JDK1.8のインストールと設定
- mysql 8をインストールし、データベース (utf8mb4) を作成し、SQL を (doc ディレクトリに) インポートします。
- redis をインストールするには、ダウンロードしてインストールするだけです
- 開発ツールにはlombokプラグインをインストールする必要があります(開発ツールにはIDEAを推奨)
- --- バックエンド操作 (問題がある場合、通常は yml 設定ファイル内のデータ ソースの設定エラーです)
- ノード環境のインストールと構成
- vue-cli3をインストールし、 vue ディレクトリに入り、
npm install
実行します。 - ---フロントエンドで
npm run serve
実行します ( WebStormまたはIDEA は、 package.jsonファイルの 6 行目の左側にある緑色の三角形を直接クリックできます)
デモアドレス
- オンラインデモアドレス
- ユーザー名:スーパー管理者
- パスワード:111111
- ヒント: 同時にログインしている複数のユーザーは追い出される可能性があります。
- ヒント: デモ環境では、追加、削除、および変更操作が禁止されています。エラーは無視してください。
- ヒント: 他に例外がある場合は、ページを強制的に更新してください (キャッシュの問題である可能性があります)。
- インターフェースのドキュメント
- 闊歩するブートストラップ
- ヒント: リクエストでは 404 というプロンプトが表示されます。リクエストの前に /github を手動で追加してください
展開する
- springboot ディレクトリで
mvn clean package
コマンドを実行してパッケージ化すると、生成されたファイルが /target/build ディレクトリに作成されます。- config ディレクトリには構成ファイルが保存されます。
- lib ディレクトリは、Maven が依存する jar パッケージです。
- 静的ディレクトリには静的ファイルが格納されます
- jar ファイルは生成された jar パッケージです (pom の依存関係が今後も変更されない場合は、jar パッケージを置き換えることしかできません)。
- vue ディレクトリで
npm run build
コマンドを実行してパッケージ化すると、生成されたファイルが /dist ディレクトリに作成されます。- パッケージング構成は.envファイルとvue.config.jsファイルにあります
- デプロイメントサーバーは、 JDK1.8 、 mysql 8 、およびredis環境を構成する必要があります
- jar パッケージは
nohup java -jar springboot.jar &
バックグラウンドで実行して、現在のディレクトリのnohup.outファイルにログを出力できます。 - デプロイメントサーバー用にnginx を構成することをお勧めします。Vue はパッケージ化され、nginx の下に配置されます。構成されていない場合は、 jarパッケージの同じディレクトリーのstaticの下に配置できます。
よくある間違い
java.lang.RuntimeException: Cannot resolve classpath entry: E:maven-repositorymysqlmysql-connector-java8.0.15mysql-connector-java-8.0.15.jar
- エラー: データベースに基づいてエンティティ クラスを生成します
- 解決策: resource/config/generator-config.xml の6 行目の jar パッケージ パスを独自の jar パッケージ パスに変更します。
-
npm install
- エラー: vue インストール依存関係エラー、通常はノード Sass
- 解決策: Taobao イメージを変更するか、
npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist --sass-binary-site=http://npm.taobao.org/mirrors/node-sass
-
/login ------请求失败-----error: Error: Cannot find module './q/Index'
- エラー: バックグラウンドで新しいメニューを作成し (メニューに従属がない)、メニューを追加する権限を持った後、再度ログインすると、このエラーが発生します。
- 解決策: メニュー ディレクトリと Index.vue ファイルを vue プロジェクトの /src/views/index/ パスに追加します。
後部:
スプリングブート、mybatis、redis
- 導入
- springbootテンプレートに基づいて作成されたプロジェクト
- 基本構成
- .ymlファイルでは関連情報を構成できます
- configディレクトリには、共通のモジュール構成が含まれています。
- フィルタは、クロスドメイン、 IPフィルタリング、パラメータフィルタリングなどで構成されます。
- パラメータ フィルタリングリクエストは、 Jsoup を使用してHTML タグをフィルタリングし、先頭と末尾のスペースを自動的に削除します(フィルタリング レベルはカスタマイズ可能)
- 権限管理
@AdminAuthToken
アノテーションを使用したインターフェイス。リクエスト ヘッダーにはアクセスするためのトークンが必要です- vue フロントエンド ページと連携してルーティングを動的にレンダリングし、表示ボタンを非表示にします。ボタンは
$store.state.role['buttons']
(フロントエンド) に保存されます。 - インターフェイス レベルのアクセス許可を正確に行うには、機能管理のメニューまたはボタンに対応する API を改善する必要があります。改善しない場合は、トークンの存在後にデフォルトで許可されます。
- パッケージング ファクトリは CURD を使用し、 BaseService を継承するだけです。
-
baseInsert()
とbaseUpdate()
NULL 値を持つフィールドを自動的にフィルターします。 -
baseUpdate()
パラメータをフィルタリングするか、代入操作用の新しいエンティティ クラスを作成してください。
- データベースに基づいてエンティティ クラスを自動生成する
- org.mybatis.generator.plugin.MyBatisTest.main()メソッドを実行します。
- 特定の構成リソース/config/generator-config.xml
- ログは毎日保存され、具体的な構成はresource/config/logback-spring.xmlにあります。
- 管理者ユーザーのログを自動的に記録し、コントローラーに
@SystemLog
アノテーションを付けることができます
フロントエンド:
ビュー:
導入
- vue cli3をベースに作成したプロジェクト
- インターフェイス UI:要素 ui
- ネットワークリクエスト: axios
- グローバル呼び出しメソッド
this.$axios({ url: '', data: {}, success(data) {} });
- URL: ドメイン名の後のアドレスのみが必要です
- 成功: コールバックはコードが 200 の場合のみ処理する必要があります。
- グローバル変数とメソッドは /src/utils ディレクトリにあります
- /src/assets/sass/element-variables.scss ファイルの element-ui スタイルをオーバーライドします。
- iconfontフォントライブラリの紹介
- /src/assets/font/iconfont ディレクトリ内のファイルを上書きするだけです
<i class="iconfont iconfont-address"></i>
を引用します。
- ほとんどのプロジェクトにはコメントが付いています
基本構成
- バックエンドと連携して動的ルーティングを実装します。機能管理フォームにパスを入力します。デフォルトのルート パスは/src/views/index/です。
- .env.production/developmentファイルとvue.config.jsは設定ファイルです
カプセル化された一般的に使用されるコンポーネント (詳細については、/src/views/index/system/sysUser/ の詳細なコメントを参照してください)
- ダイアログ:ポップアップ ボックス
- 詳細: タイトル + コンテンツの形式でデータを表示します
- form: フォーム送信。
@submit
フォーム検証後の状況を処理するだけで済みます。 - インデックス: 通常のポップアップ ボックス
- テーブル: テーブル
- フォームで受け入れられる戻り例:
{"list":[],"pageNum":1,"pageSize":10}
- テーブル データ リクエスト
tableDataRequest: { url: '', data: {} }
- URL: リクエストアドレス
- データ: 追加パラメータ、トップ検索で使用
- テーブル表示
tableColumns: [ {prop: 'username', label: '用户名',formatter(){ return ''; }} ]
配列を受け入れます ---layui テーブルを参照してください- フォーマッタ: 複雑な表示、dom を返すことができます
謝辞
まず第一に、 springboot 、 vue 、 element-uiおよびその他の優れたオープンソース プロジェクトのおかげです。 次に、このプロジェクトは多くのオンライン例を参照しています。同様のコードがあれば、答えは 1 つだけです。