SpringBootプロジェクトを構築する方法を教えてください

目次

概要概要

プロジェクトをビルドする

プロジェクトの実行

総括する


最近、SpringBootフレームワークを使用してThingsboardプロジェクトを研究しています。APP開発者は、最初にこのフレームワークを理解してから、Thingsboardプロジェクトを研究する必要があります。したがって、SpringBootプロジェクトをビルドするときに発生した問題を簡単に要約します。

概要概要

SpringBootはSpringFrameworkに基づいており、Springアプリケーションをすばやく構築するために使用されます。SpringBootは多くのフレームワークを統合しているため、ライブラリのコレクションです。Mavenと比較すると、Mavenはjarパッケージのコレクションです。

SpringBoot設計の目的は、Springアプリケーションを可能な限り迅速に実行し、構成ファイルを削減することです。

SpringCloudは、一般にクラウドアプリケーションと呼ばれるSpringBootを構築するための分散環境です。

Springアプリケーションには、Web、サービス、およびdaoの3層アーキテクチャがあります。

プロジェクトをビルドする

前提は、JDK 1.8以降、管理ツールMaven、開発ツールIntellijIDEAがインストールされていることです。

  • 1. Spring Assistantを使用して新しいプロジェクトを作成し、[ファイル]-> [新規]-> [プロジェクト...]をクリックすると、次のダイアログボックスが表示されます。

プラグインがインストールされていない場合、IntellijではSpring Assistantオプションを使用できないため、プラグインでSpring Assistantを検索して、インストールする必要があります。スクリーンショットに表示されている「アンインストール」は、プラグインをインストールしたためです。

このプラグインを使用すると、最初の手順を繰り返して新しいプロジェクトを作成すると、SpringAssistantオプションが表示されます。操作の最初のステップでデフォルトのURLを選択します。その中で、アドレスhttps://start.spring.ioは「接続タイムアウト」をスローすることがありますこれは数回の試行で成功する可能性があります。もちろん、「https://start.aliyun.com」に設定することもできますカスタムで[次へ]をクリックして、次のステップに入ります

  • 2.プロジェクト情報を入力します

ここで、プロジェクト名の文字は小文字にする必要があることに注意してください。そうでない場合、開始できないSpringbootApplicationクラスが後で生成され、Applicationクラスのみが生成されます。

  • 3.Webの依存関係とSQLの依存関係を確認します

シングスボードはPostgreSQLを使用しているので、選択するときはPostgreSQLドライバーを選択する必要があると感じています

  • 4.保存するプロジェクトパスを選択します。

プロジェクトの実行

プロジェクトをテストして実行するには、HelloSpringBootControllerのリクエストをプロジェクトに追加します。HelloSpringBootControllerクラスのコードは次のとおりです。

package com.example.springboot.controller;

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


@RestController
public class HelloSpringBootController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello Spring Boot";
    }

    @RequestMapping("/helloint")
    public int helloInt() {
        return 123;
    }

}

スタートアップクラスSpringbootApplicationのコードは次のとおりです。このクラスを実行します。

 

package com.example.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}

}

次に、Intellijの出力が次のように表示され、SpringbootApplicationが正常に開始されたことを示します。

 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)

2020-07-22 16:08:11.006  INFO 7592 --- [           main] c.e.springboot.SpringbootApplication     : Starting SpringbootApplication on liuwenjingMacBook-Pro.local with PID 7592 (/Users/j1/Documents/iOT/springboot/target/classes started by j1 in /Users/j1/Documents/iOT/springboot)
2020-07-22 16:08:11.008  INFO 7592 --- [           main] c.e.springboot.SpringbootApplication     : No active profile set, falling back to default profiles: default
2020-07-22 16:08:11.976  INFO 7592 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-07-22 16:08:11.988  INFO 7592 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-07-22 16:08:11.988  INFO 7592 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.36]
2020-07-22 16:08:12.064  INFO 7592 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-07-22 16:08:12.064  INFO 7592 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1003 ms
2020-07-22 16:08:12.209  INFO 7592 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-07-22 16:08:12.385  INFO 7592 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-07-22 16:08:12.395  INFO 7592 --- [           main] c.e.springboot.SpringbootApplication     : Started SpringbootApplication in 1.994 seconds (JVM running for 2.376)

もちろん、動作中にポート8080が占有される場合があり、ポート8080を占有するプログラムを見つけて、プログラムを強制終了します。

<!--找到所有的占用8080端口的程序-->
MacBook-Pro:file xxx$ lsof -i:8080
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
WeChat    258   j1   30u  IPv6 0x3f60708f15ffb7b9      0t0  TCP 172.16.20.40:49184->116.128.133.100:http-alt (ESTABLISHED)
?\x81?  290   j1   16u  IPv4 0x3f60708f203ec639      0t0  TCP 172.16.20.40:50287->157.255.245.177:http-alt (ESTABLISHED)
?\x81?  290   j1   31u  IPv4 0x3f60708f379ff339      0t0  TCP 172.16.20.40:50417->reverse.gdsz.cncnet.net:http-alt (ESTABLISHED)
QQ        295   j1   18u  IPv4 0x3f60708f1c3bc939      0t0  TCP 172.16.20.40:49204->153.3.50.86:http-alt (ESTABLISHED)
QQ        295   j1   21u  IPv4 0x3f60708f1c3bc939      0t0  TCP 172.16.20.40:49204->153.3.50.86:http-alt (ESTABLISHED)
<!--将占用8080端口的程序杀掉-->
MacBook-Pro:file xxx$ kill 290
<!--找到所有的占用8080端口的程序-->
MacBook-Pro:file xxx$ lsof -i:8080
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
WeChat  258   j1   30u  IPv6 0x3f60708f15ffb7b9      0t0  TCP 172.16.20.40:49184->116.128.133.100:http-alt (ESTABLISHED)
QQ      295   j1   18u  IPv4 0x3f60708f1c3bc939      0t0  TCP 172.16.20.40:49204->153.3.50.86:http-alt (ESTABLISHED)
QQ      295   j1   21u  IPv4 0x3f60708f1c3bc939      0t0  TCP 172.16.20.40:49204->153.3.50.86:http-alt (ESTABLISHED)
MacBook-Pro:file xxx$

ブラウザに「http:// localhost:8080 / hello」と入力すると、インターフェイスは次のように表示されます。

http:// localhost:8080 / helloint」と入力すると、インターフェイスは次のように表示されます。

総括する

単純なSpringBootプロジェクトは正常に実行できるため、この単純な例から学ぶことで、thingsboardプロジェクトを見ると、org.thingsboard.server.controllerの下のコントローラーから開始できるはずであることがわかります。ただし、SpringBootフレームワーク自体について知っておく必要があることは次のとおりです。

(1)注釈の意味と実現できる機能

(2)Webページとこれらの注釈がページからどのようにレンダリングされるか

(3)データベースの操作方法

これらの問題を今考えて、続けてください。

おすすめ

転載: blog.csdn.net/nihaomabmt/article/details/107513389