山東大学ソフトウェアカレッジプロジェクトトレーニング-革新的なトレーニング-山東大学ソフトウェアインスティテュートネットワーク攻撃および防御射撃範囲実験プラットフォーム(3)


序文:

プロジェクトのトレーニングが承認されてから数日以内に、私の主な仕事は、Dockerの知識を習得し、TencentクラウドサーバーにDockerをインストールしてから、コマンドラインからDockerの基本的な使用法に関する基本的な操作実験を行うことでした。Dockerの基本的な使用法をマスターしたので、次のタスクは、Javaプログラムを使用して、サーバー上のDockerコンテナーをリモートで制御し、コンテナーの作成、実行中のコンテナーの停止、削除などの基本的な操作を実行する方法を学習することです。コンテナ、コンテナポートマッピングの指定、システム内のすべてのコンテナの表示などの基本操作。グループディスカッションの結果、私たちのプロジェクトのバックエンドは、springbootフレームワークに基づいて開発されたものであることが決定されました。しかし、私たちのグループのメンバーのほとんどは、springbootに触れたことがないので、最初にspringbootを学ぶ必要があります。この記事では、springbootを学ぶ過程でより重要だと思う部分を簡単に記録します。次に、テスト用の単純なスプリングブートプロジェクトを作成します。

ビデオコースは、ステーションBのUP Crazy Godシリーズコースです:
https ://www.bilibili.com/video/BV1PE411i7CV



1.Springbootの概要

springbootを紹介する前に、春について学びましょう。Springはオープンソースフレームワークであり、2003年に登場した軽量のJava開発フレームワークです。著者:RodJohnson。

Springは、エンタープライズアプリケーション開発の複雑さに対処し、開発を簡素化するために作成されました。

SpringはJava開発をどのように簡素化しますか?

Java開発の複雑さを軽減するために、Springは次の4つの主要な戦略を採用しています。

  1. POJOに基づく軽量で低侵襲のプログラミングで、すべてがBeanです。

  2. IOC、依存性注入(DI)、およびインターフェース指向による緩い結合。

  3. アスペクト(AOP)と規則に基づく宣言型プログラミング。

  4. ファセットとテンプレート、RedisTemplate、xxxTemplateを介してスタイルコードを削減します。

SpringBootとは

SpringBootとは?SpringMVCに似たjavaweb開発フレームワークです。他のjavawebフレームワークの利点と比較して、開発が簡素化され、慣例が構成よりも優れていると公式に言われています。「実行するだけ」ですばやく開発できます。数行のコードを含むWebアプリケーション。httpインターフェイスを開発します。

Spring BootはSpringに基づいて開発されています。SpirngBoot自体は、Springフレームワークのコア機能と拡張機能を提供しませんが、Springフレームワークに基づく新世代のアプリケーションを迅速かつ機敏に開発するためにのみ使用されます。つまり、これはSpringに代わるソリューションではなく、Springフレームワークと緊密に統合されてSpring開発者エクスペリエンスを強化するツールです。設定より規約という基本的な考え方により、Spring Bootは、デフォルトで多くの設定を行うのに役立ちます。ほとんどのSpring Bootアプリケーションは、わずかなSpring構成のみを必要とします。同時に、一般的に使用される多数のサードパーティライブラリ構成(Redis、MongoDB、Jpa、RabbitMQ、Quartzなど)を統合し、SpringBootアプリケーションのこれらのサードパーティライブラリを外部で使用できます。構成がほぼゼロのボックス。

つまり、SpringBootは新しいフレームワークではなく、mavenがすべてのjarパッケージを統合し、Spring Bootがすべてのフレームワークを統合するように、デフォルトで多くのフレームワークで構成されます。

Spring Bootの主な利点:

  1. すべてのSpring開発者のオンボーディングが高速化

  2. 箱から出して、プロジェクト構成を簡素化するためにさまざまなデフォルト構成が提供されています

  3. インラインコンテナはWebプロジェクトを簡素化します

  4. 冗長なコード生成とXML構成の要件はありません

2. hello world

環境の準備:
Javaバージョン "1.8.0_181"
Maven-3.6.1
SpringBoot 2.x


開発ツール:
IDEA


1.プロジェクトの作成方法1:SpringInitializeのWebページを使用してプロジェクトを作成します

1.https://start.spring.io/を開きます
ここに画像の説明を挿入

2.プロジェクト情報を入力します
ここに画像の説明を挿入

3. [プロジェクトの生成]ボタンをクリックしてプロジェクトを生成し、このプロジェクトをダウンロードします
ここに画像の説明を挿入

4.プロジェクトパッケージを解凍し、IDEAを使用してMavenプロジェクトとしてインポートします。プロジェクトがインポートされるまで、次のステップに進みます。
ここに画像の説明を挿入

5.初めて使用する場合は、速度が遅くなり、パッケージが増える可能性があり、すべての準備が整うまで辛抱強く待つ必要があります。



2.プロジェクト作成方法2:IDEAを使用してプロジェクトを直接作成する

1.新しいプロジェクトを作成します

2. spring initalizrを選択します。デフォルトでは、公式Webサイトのクイックビルドツールにアクセスして実装することがわかります。

3.プロジェクト情報を入力します
ここに画像の説明を挿入

4.初期化されたコンポーネントを選択します(Webで初心者を確認できます)
ここに画像の説明を挿入

5.プロジェクトパスを入力します

6.プロジェクトが正常にビルドされるのを待ちます



3.HelloWorldをテストします

httpインターフェースを書く

1.メインプログラムの同じレベルのディレクトリに、同じレベルのディレクトリにある必要がある新しいコントローラパッケージを作成します。そうしないと、認識されません。
ここに画像の説明を挿入


2.パッケージの依存関係に新しいhello_worldクラスを作成します

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

テストコードを書く

package com.example.test.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class hello_world {
    
    
    @RequestMapping("/hello")
    public String hello(){
    
    
        return "Hello-World";
    }
}

3.書き込み後、メインプログラムからプロジェクトを開始すると、ブラウザがリクエストを開始し、ページが戻ります。コンソールは、Tomcatがアクセスしたポート番号を出力します。
ここに画像の説明を挿入

Webインターフェイスの開発を完了するためのいくつかの簡単な手順

プロジェクトをjarパッケージに入力し、mavenパッケージ
ここに画像の説明を挿入
をクリックしてからjarパッケージにパッケージ化すると、次のエラーが発生する可能性があります。
ここに画像の説明を挿入
上記のエラーが発生した場合は、プロジェクトをスキップしてテストケースを実行するようにパッケージを構成できます。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳过项目运行测试用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>

パッケージ化が成功すると、ターゲットディレクトリにjarパッケージが生成されます。jarパッケージがパッケージ化された後は、どこでも実行できます。最終的にDockerイメージを生成すると、jarパッケージにもパッケージ化されます。ミラーイメージとして公開を再生成するdockerfileファイルを書き込みます。



参考文献

参照ブログ:
https ://blog.csdn.net/baidu_39298625/article/details/98102453
https://blog.csdn.net/wjg8209/article/details/94546110
https://blog.51cto.com/yaowusheng/2565318
https://www.jianshu.com/p/9f8d2d91d119


参照ビデオ:
https ://www.bilibili.com/video/BV1PE411i7CV

おすすめ

転載: blog.csdn.net/m0_47470899/article/details/123353326