Spring Boot設定ファイルの機能と詳細は何ですか?

WBOY
リリース: 2023-05-12 22:13:04
転載
1589 人が閲覧しました

    1. 設定ファイルの役割

    設定ファイルは非常に重要で、プロジェクト全体の重要なデータはすべて設定ファイルに設定されます。例:

    • データベース接続情報 (ユーザー名とパスワードの設定);

    • プロジェクト起動用のポート;

    • サードパーティ システム コールの秘密キー情報;

    • 問題を検出して特定できる通常のログと異常なログ (ログのレベルと永続性);

    構成ファイルがない場合、この情報を構成できません。データベースに接続できません。ログを表示できません。これらの問題は Spring Boot プロジェクトにとって非常に重要であるため、構成ファイルは特に重要です。

    2. 設定ファイルの形式

    設定ファイルの分類は一般的に次のとおりです:

    • システム設定ファイル (システムによって定義される)。接続文字列、ログ関連の設定;

    • ユーザー定義;

    Spring Boot 構成ファイルには主に 2 つの形式があります:

    • .properties

    • .yml

    Spring Boot設定ファイルの機能と詳細は何ですか?

    以上です 2 つの形式があります, そして、ここではこのように書かなければなりません、そうしないとエラーが報告されます(規約は設定よりも重要です) どちらでも、関連する設定ファイルを設定できます. 2つの形式は単に異なる時代の産物です. ​​の書き方他の 2 つの形式も異なります。以下に関連する説明があります。さらに、これら 2 つの形式は共存することもできます。両方が設定されている場合、ここでの設定はプロパティの設定を使用し、yml の設定を無視します。同じプロジェクトで両方の形式を同時に使用することはお勧めしません。

    3. プロパティ設定ファイルの説明

    プロパティ設定ファイルは、以前の設定ファイル形式であり、Spring Boot プロジェクトのデフォルト設定ファイルでもあります。プロパティ設定ファイル:

    1. プロパティの基本構文

    プロパティでは、

    Spring Boot設定ファイルの機能と詳細は何ですか? と同様に、主にキーと値のペア (key=value) が使用されます。

    形式 (途中にスペースを入れたり、余分なスペースを入れたりしないでください)

    カスタム設定ファイルの場合は、key=value の形式でもあり、これはあなたがこれを読みたい場合は、ファイルは値を取得するために独自に定義されたキー値のみを使用できます。

    2. 設定ファイルを読み取ります

    この問題は、アノテーションを使用することでも解決できます。ここでは、@Value アノテーションと ${} の形式を使用して、次の内容を読み取ることができます:

    @Controller
    public class Test {
        @Value("${server.port}") //读取配置项
        private  String port;
        @ResponseBody  //返回一个非静态页面的数据
        @RequestMapping("/func")  //设置路由地址
        public String  func(){
            return "port: " + port;
        }
    }
    ログイン後にコピー

    次に、ページ内で http://localhost:8080/func を検索して、読み取られたポート番号が確認されているかどうかを確認します。

    Spring Boot設定ファイルの機能と詳細は何ですか?

    使用する @Value は If のみです。 1 つの設定ファイルを読み取ることができますが、複数の設定ファイルを読み取りたい場合は、さらにいくつかの @Value タグを記述する必要があります

    3. プロパティの欠点

    プロパティでは、キーは =value 形式で使用されます、同じキーの下の値である場合、キーの値を繰り返し書き込む必要があり、これは非常に冗長です

    Spring Boot設定ファイルの機能と詳細は何ですか?

    ので、それを解決したいこの問題は、次の使用を必要としますyml 設定ファイルの説明

    IV. yml 設定ファイルの説明

    yml は設定ファイルの別の形式です。yml は可読性が高く、理解しやすいです。データのシリアル化の形式を表現するために使用されます。 yml の構文は高級言語に非常に似ており、yml の最大の利点は、言語を超えて使用できることです。たとえば、Python や golang では、yml を設定ファイルとして使用できます。以下は、yml 設定ファイルの詳細な紹介です:

    1. yml の基本構文

    yml の基本構文は次のとおりです: key: value. 英語のコロンとスペースは、キーと値の間は必須であり、スペースは省略できません。上記の接続データベース構成を

    Spring Boot設定ファイルの機能と詳細は何ですか?

    ##:

    のような構文で記述するとはるかに便利です。

    Spring Boot設定ファイルの機能と詳細は何ですか?

    追加: yml 内の単一引用符と二重引用符に関する問題: yml で二重引用符が使用されている場合、二重引用符は (元の) セマンティクスに従って実行されます。 \n -> \n などの特殊文字をエスケープ(エスケープ)処理します。

    2. 設定ファイルの読み取り

    yml 設定ファイルの読み取り方法もプロパティと同様で、すべて @Value アノテーションに ${} を加えた形式を使用します。ここでは説明しませんが、yml の違いを見てみましょう。

    3.配置对象

    在yml里面还是可以配置对象的:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    另外也可以使用行内写法:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    而想要读取到这个对象的话就不能再使用@Value注解了,这里需要借助@ConfigurationProperties来读取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Data
    @ConfigurationProperties(prefix = "student") //读取配置文件的对象
    @Component
    public class Student {
        private int id;
        private String name;
        private int age;
    }
    ログイン後にコピー

    然后读取对象,就可以直接进行注入了:

    @Controller
    public class Test {
        @Autowired
        private Student student;
        @ResponseBody
        @RequestMapping("/getstudent")
        public String getStudent(){
            return "student: " + student;
        }
    }
    ログイン後にコピー

    然后通过浏览器搜索http://localhost:8080/getstudent就可以得到对象内容了:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    4.配置集合

    在yml里面也是可以配置集合的:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    同样行内写法也是可以的:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    而要获取到集合的话,和获取对象是差不多的,也是通过@ConfigurationProperties来获取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    import java.util.List;
    @Data
    @ConfigurationProperties(prefix = "dbtypes")
    @Component
    public class ListConfig {
        private List<String> name;
    }
    ログイン後にコピー

    读取集合:

    @Controller
    public class Test {
        @Autowired
        private ListConfig listConfig;
        @ResponseBody
        @RequestMapping("/getlist")
        public String getList(){
            return "name:" + listConfig.getName();
        }
    }
    ログイン後にコピー

    然后通过浏览器搜索http://localhost:8080/getlist就可以得到对象内容了:

    Spring Boot設定ファイルの機能と詳細は何ですか?

    五.properties和yml的区别

    • properties是以key=value的形式配置的键值对类型配置文件,而yml是以key: value的形式配置的键值对类型配置文件;

    • properties是早期且系统默认的配置文件格式,但配置存在一定的冗余数据,而yml可以更好的解决数据冗余问题;

    • yml通用性更好,支持多语言;

    • yml支持更多的数据类型;

    以上がSpring Boot設定ファイルの機能と詳細は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート