SpringBootを導入する前に、SSMを使用してプロジェクトを構築するために使用している手順を最初に思い出します。まず、必ずMavenプロジェクトを作成し、次にSpring関連の依存関係を導入してから、MyBatis関連の依存関係を導入する必要があります。関連する構成ファイルを構成します。さらに、Spring MVCの依存関係を導入する必要があります。また、関連する構成ファイルを構成する必要もあります。最後に、プロジェクトのTomcatを構成する必要があります。これまでのところ、プロジェクトの構築はこれで完了です。
上記の手順を読んだ後、それは非常に面倒であり、依存関係が多すぎ、バージョンの問題があり、Spring Bootを使用する利点はありますか?SpringBootは、新しいSpringアプリケーションの初期構築と開発を簡素化するように設計されています。フレームワークは特定の構成方法を使用するため、開発者はサンプル構成を定義する必要がありません。つまり、Spring Bootの本来の目的は、Springの構成を簡素化し、新しい機能を開発に統合するときに高速化し、関連する構成を簡素化または削減することです。
ここでは、最も基本的な方法を使用して、SpringBootプロジェクトをビルドします。
まず、次のように基本的なMavenプロジェクトをビルドします。次に、プロジェクトの情報を入力し、プロジェクトパスを選択します。これで完了できます。
以下は実際には非常に簡単です。SpringBootの概要に従って実行できます。実際、最初に次のように、Spring Bootの親の依存関係が必要です。
上の図では、プロジェクトコードとjdkバージョン番号も指定しています。次の方法のいずれかを使用することもでき、構成することもできます。
実際、SpringBootプロジェクトは最初に完了していますが、それは非常に簡単ですか?以下は、SpringBootの公式Webサイトからコピーした小さな例です。
@EnableAutoConfiguration
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
次に、右クリックしてプロジェクトを開始し、上記のパスにアクセスしますlocalhost:8080/hello
それらの中で、@ RestController、@ GetMapping、@ RequestParam、私たちはすべて比較的よく知っているはずです、SpringMVCですでに学んでいるので、ここで見てみましょう@EnableAutoConfiguration
。この注釈は、追加されたjar依存関係に基づいてどのようにしたいかを推測する必要があることをSpring Bootに伝えますたとえば、Springを構成します。たとえば、TomcatとSpring MVCを含む上記のspring-boot-starter-web依存関係を追加したため、SpringBootはWebアプリケーションの開発要件に従ってSpringを設定します。、
AutoConfigurationImportSelectorクラスが@Importアノテーションによって導入されたことがわかります。@ Importアノテーションの役割はSrpingで導入されました。
AutoConfigurationImportSelectorクラスを通じて、META-INF / spring.factoriesが導入されていることがわかります。これは、Spring Bootでデフォルトでロードされるコンポーネントです。
ここでは、上記のテストメソッドを再度変更する必要があります。helloメソッドにアクセスして、DemoControllerクラスに個別に記述し、コントローラーパッケージの下に配置しました。これは、次のように、私たちの日常の開発における標準プロジェクトです。
@EnableAutoConfiguration
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
public class DemoController {
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
次に、このプロジェクトを実行していて、それでもにアクセスしlocalhost:8080/hello
、エラーを見つけました
これはなぜですか?実際、Springを思い出すことで理解できます。対応するクラスやパッケージをスキャンしていません。@ EnableAutoConfigurationは一部のサードパーティコンポーネントを紹介するためだけに使用されていますが、スキャン機能がないため@SpringBootApplication
、次のようにここで使用する必要があります。 :
ここで、この@SpringBootApplication
注釈はスタートアップクラスの同じレベルのフォルダをすべてスキャンするので、スタートアップクラスを誤って配置してはならないことに注意する必要があります。
この時点で、プロジェクトを再開できます。次のようにアクセスできます。
ポート番号を変更する
ここでは、Spring Boot:8080のデフォルトのポート番号を変更する方法をもう一度見ていきます。これは実際には非常に簡単です。次のように、構成ファイルで変更するだけです。
server.port=8081
上記の変更には.propertiesファイルを使用しましたが、実際には次のようにymlを使用して変更することもできます。
server:
port: 8082
注:プロパティファイルとymlファイルが同時に存在する場合、プロパティファイルが優先されます
プロジェクト名を追加
さらに、Spring Bootのアクセスパスにプロジェクトの名前を追加することもできます。Springプロジェクトでは、Tomcatで構成でき、構成ファイルで直接変更できます。
server.servlet.context-path=/demo
注:前の「/」を無視しないでください。また、ymlも同様の構成になっています。
最後に、Spring Bootプロジェクトをビルドすると、さらにシンプルになる可能性があります。IDEAを直接使用して、次のようにプロジェクトをビルドできます。
ここでは、Spring Bootのバージョンを選択できます。また、次のように、必要なコンポーネントを追加することもできます。
完成後のプロジェクト構成は以下の通り
そのpomファイルを表示できます。実際、これは、独自のMavenプロジェクトを使用して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.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.kimi</groupId>
<artifactId>springboot2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot2</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>