ホームページ > Java > &#&チュートリアル > SpringBoot が yml ファイルを読み取る 3 つの方法

SpringBoot が yml ファイルを読み取る 3 つの方法

WBOY
リリース: 2023-06-29 23:25:17
転載
1024 人が閲覧しました


Spring Boot が yml ファイルを読み取る主な方法は次のとおりです。

1.@Value アノテーション

プロパティに追加できます。 @Value アノテーションを使用して、yml 内の値を直接読み取ります。例:

application.yml:

name: Zhangsan
ログイン後にコピー

Bean:

public class MyBean {
    @Value("${name}")
    private String name;
}
ログイン後にコピー

2.Environment オブジェクト

Environment オブジェクトを挿入することで yml 値を読み取ることができます。たとえば、

@Autowired
private Environment environment;
public void doSomething() {
    String name = environment.getProperty("name");
}
ログイン後にコピー

3.@ConfigurationProperties アノテーション

@ConfigurationProperties アノテーションを使用すると、yml 内の値を Bean プロパティにマップできます。例:

application.yml:

my: 
    name: Zhangsan
    age: 18
ログイン後にコピー

Bean:

@Component 
@ConfigurationProperties(prefix = "my")
public class MyProps {
    private String name;
    private int age;
    // getter and setter
}
ログイン後にコピー

4.YmlPropertySourceFactory

YmlPropertySourceFactory を使用して yml ファイルをロードし、通常のプロパティと同様に値を読み取ることができます (例:

@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
    YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
    factory.setResources(new ClassPathResource("application.yml"));
    factory.getObject().forEach((k, v) -> System.out.println(k + ": " + v));
    return factory; 
}
ログイン後にコピー

5.@YamlComponent アノテーション)

yml ファイル内に — で区切られた複数のドキュメントがある場合、

application.yml のように、@YamlComponent アノテーションを使用して各ドキュメントを Bean にマップできます。 :

my:
  name: Zhangsan 
---
my: 
  name: Lisi
ログイン後にコピー

Beans:

@Component("first") 
@YamlComponent(value = "my.first")
public class FirstProps {
    private String name;
}
@Component("second")  
@YamlComponent(value = "my.second")
public class SecondProps {
    private String name; 
}
ログイン後にコピー

Spring Boot は yml ファイルを読み込むことができ、必要に応じて 5 つの主要なメソッドを選択できます。 yml は Spring Boot のデフォルトの構成ファイル形式です。yml ファイルの操作方法を理解すると、システム構成の柔軟性を実現できます。

以上がSpringBoot が yml ファイルを読み取る 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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