YAML ファイルを使った設定

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、YAML ファイルを使用して Spring Boot アプリケーションを構成し、構成データを処理するクラスを実装し、構成情報を Web ページに表示するコントローラを作成する方法を学びます。

👀 プレビュー

Spring Boot web page result

🎯 タスク

このプロジェクトでは、以下を学びます。

  • YAML ファイルを使用してアプリケーション プロパティを構成する方法
  • 構成データを処理する Student クラスを実装する方法
  • 構成データを Web ページに表示する StudentController を作成する方法
  • 起動クラスを変更して、プロジェクト パッケージ内のすべてのクラスをスキャンする方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • アプリケーション構成に YAML ファイルを使用する
  • @ConfigurationProperties アノテーションを使用して構成データをクラスに自動的にバインドする
  • @Value アノテーションを使用して構成値をコントローラに注入する
  • @SpringBootApplication アノテーションを使用してコンポーネント スキャンを構成する
  • 構成データを表示する単純な Web アプリケーションを開発する

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java/DataStructuresGroup -.-> java/arrays("Arrays") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("OOP") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/annotation("Annotation") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/io("IO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") subgraph Lab Skills java/arrays -.-> lab-300350{{"YAML ファイルを使った設定"}} java/classes_objects -.-> lab-300350{{"YAML ファイルを使った設定"}} java/packages_api -.-> lab-300350{{"YAML ファイルを使った設定"}} java/oop -.-> lab-300350{{"YAML ファイルを使った設定"}} java/annotation -.-> lab-300350{{"YAML ファイルを使った設定"}} java/files -.-> lab-300350{{"YAML ファイルを使った設定"}} java/io -.-> lab-300350{{"YAML ファイルを使った設定"}} java/working -.-> lab-300350{{"YAML ファイルを使った設定"}} end

YAML ファイルを構成する

このステップでは、YAML ファイルを使用してアプリケーション プロパティを構成する方法を学びます。このステップを完了するには、以下の手順に従ってください。

  1. プロジェクト内の src/main/resources ディレクトリに移動します。
  2. application.yml という名前の新しいファイルを作成します。
  3. application.yml ファイルに、以下の構成を追加します。
## Self-defined properties
school: Stanford University

student:
  id: 2024000103
  name: Taylor Joy
  age: 18
  courseId: 100018, 321001, 458911

この YAML 構成は、school プロパティと student プロパティを定義しており、学生 ID、名前、年齢、コース ID が含まれています。

✨ 解答を確認して練習

Student クラスを実装する

このステップでは、構成データを処理するための Student クラスを実装します。

  1. org.labex.entity パッケージに移動し、Student.java という名前の新しいファイルを作成します。
  2. Student.java ファイルに、以下のコードを追加します。
package org.labex.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private String id;
    private String name;
    private int age;
    private int[] courseId;

    @Override
    public String toString() {
        return "Student {id=" + id +
                ", name=" + name +
                ", age=" + age +
                ", course id=" + Arrays.toString(courseId) + "}";
    }

    // Getters and setters
    //...
}

このクラスでは、@Component@ConfigurationProperties アノテーションを使用して、application.yml ファイルのプロパティを Student クラスの対応するフィールドに自動的にバインドします。

✨ 解答を確認して練習

StudentController を実装する

このステップでは、構成済みのデータを表示するための StudentController を実装します。

  1. org.labex.controller パッケージに移動し、StudentController.java という名前の新しいファイルを作成します。
  2. StudentController.java ファイルに、以下のコードを追加します。
package org.labex.controller;

import org.labex.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StudentController {
    @Value("${school}")
    private String school;

    @Autowired
    private Student student;

    @GetMapping("/student")
    public String getStudent() {
        return "school=" + school + student.toString();
    }
}

このコントローラでは、@Value アノテーションを使用して school プロパティを注入し、@Autowired アノテーションを使用して Student オブジェクトを注入します。getStudent() メソッドは、/student エンドポイント経由でアクセスされたときに、構成済みのデータをブラウザに表示します。

✨ 解答を確認して練習

起動クラスを変更する

このステップでは、起動クラスを変更して、org.labex パッケージ内のすべてのクラスをスキャンするようにします。

  1. org.labex.springbootyaml パッケージに移動し、DemoApplication.java ファイルを開きます。
  2. DemoApplication クラスを以下のように更新します。
package org.labex.springbootyaml;

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

@SpringBootApplication(scanBasePackages="org.labex")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@SpringBootApplication アノテーションに scanBasePackages="org.labex" を追加することで、org.labex パッケージ内のすべてのクラスが Spring コンテキストによってスキャンされ、管理されるようになります。

✨ 解答を確認して練習

アプリケーションをパッケージ化して実行する

この最後のステップでは、アプリケーションを JAR ファイルにパッケージ化し、Spring Boot サービスを実行します。

  1. ターミナルを開き、以下のコマンドを使用してプロジェクトのルート ディレクトリに移動します。
cd ~/project/springbootyaml/
  1. 以下のコマンドを実行して、Spring Boot サービスをパッケージ化して起動します。
mvn clean package
mvn spring-boot:run
  1. サービスが実行されたら、Web ブラウザを開き、http://localhost:8080/student に移動します。ページに構成済みの学校と学生の情報が表示されるはずです。

出力は以下のようになります。

Spring Boot サービスの出力

おめでとうございます!YAML ファイルを使用してアプリケーションを構成し、必要なクラスを実装し、Spring Boot サービスを実行することで、正常にプロジェクトを完了しました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。