Spring Boot の概要
1. 入門ケース
問題のインポート
SpringMVCのHelloWordプログラムはどのように書くのでしょうか?
-
SpringBoot は、Pivotal チームが提供する新しいフレームワークで、Spring アプリケーションの初期構築および開発プロセスを簡素化するように設計されています。
-
SpringMVCプログラムプロセスのネイティブ開発
1.1 ケース開発の開始手順
①: 新規モジュールを作成し、Spring 初期化を選択し、モジュールの基本情報を設定します
②: 現在のモジュールが使用する必要があるテクノロジーセットを選択します
③:コントローラークラスの開発
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id) {
System.out.println("id ==> " + id);
return "hello , spring boot! ";
}
}
④:自動生成されたApplicationクラスを実行する
- 最も単純な SpringBoot プログラムに含まれる基本ファイル
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
</parent>
<groupId>com.itheima</groupId>
<artifactId>springboot-01-quickstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- SpringプログラムとSpringBootプログラムの比較
予防:
アイデアに基づいて SpringBoot プログラムを開発するには、ネットワークを確保し、プログラム フレームワーク構造にロードできる必要があります。
1.2 SpringBoot公式サイトを参考にプロジェクトを作成する
1.3 SpringBoot プロジェクトのクイックスタート
① SpringBootプロジェクトをパッケージ化する(Mavenビルド指示パッケージを実行)
② 起動コマンドを実行します。
java -jar springboot_01_quickstart.jar # 项目的名称根据实际情况修改
予防:
jar はコマンドライン起動をサポートしており、Maven プラグインのサポートに依存する必要があるため、パッケージ化する際に SpringBoot に対応した Maven プラグインがあるかどうかを確認してください。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2. Spring Bootの概要
問題のインポート
SpringBoot の入門ケースを学んだ後、SpringMVC よりも便利で簡潔なのはどれですか?
- SpringBoot は、Pivotal チームが提供する新しいフレームワークで、Spring アプリケーションの初期構築および開発プロセスを簡素化するように設計されています。
- 春のプログラムのデメリット
- 設定が面倒
- 依存関係の設定が面倒
- SpringBoot プログラムの利点
- 自動構成
- スターター依存関係 (簡略化された依存関係構成)
- アクセシビリティ (内蔵サーバーなど)
2.1 依存関係の開始
- スターター
- SpringBoot の共通プロジェクト名は、依存関係構成を減らすという目的を達成するために、現在のプロジェクトで使用されるすべてのプロジェクト座標を定義します。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
</parent>
<groupId>com.itheima</groupId>
<artifactId>springboot-01-quickstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.0</version>
<packaging>pom</packaging>
<properties>
<servlet-api.version>4.0.1</servlet-api.version>
...
</properties>
</project>
- 親
- すべての SpringBoot プロジェクトによって継承されるプロジェクトは、依存関係の競合を減らすために、いくつかの調整バージョン番号 (依存関係ではなく依存関係管理) を定義します。
- spring-boot-starter-parent (2.5.0) と spring-boot-starter-parent (2.4.6) の間には 57 の異なる座標バージョンがあります。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.0</version>
</parent>
<artifactId>spring-boot-starter-parent</artifactId>
<packaging>pom</packaging>
...
</project>
- 実際の開発
- 任意の座標を使用する場合は、GAV に G と A のみを記述し、V は SpringBoot によって提供されます
- 座標エラーが発生した場合は、バージョンを再指定してください(バージョンの競合に注意してください)
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet-api.version}</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2.2 アクセシビリティ
- SpringBootプログラムが起動します
@SpringBootApplication
public class Springboot01QuickstartApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot01QuickstartApplication.class, args);
}
}
- SpringBoot がプロジェクトを作成するときは、jar パッケージ化メソッドが使用されます。
- SpringBoot のブート クラスはプロジェクトのエントリ ポイントであり、プロジェクトは main メソッドを実行することで開始できます。
- Maven の依存関係管理を使用して起動時の依存関係を変更する
- Jetty は Tomcat よりも軽量でスケーラブルであり (Tomcat と比較して)、Google Application Engine (GAE) は Jetty に完全に切り替えられました。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--web起步依赖环境中,排除Tomcat起步依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加Jetty起步依赖,版本由SpringBoot的starter控制-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>