Springboot の非コンテナー クラスが構成ファイル データを取得する

Springコンテナで管理している場合は、@Valueアノテーションを使用してapplication.ymlファイルの内容を読み込むことができます。

ただし、Spring コンテナによって管理されていないため、@Value の使用は無効です。注入時には NULL になります。しかし、そのようなシナリオもあるでしょう. このとき、環境は Springboot スタートアップ クラスの特定のパブリック構成クラスに注入できます. このクラスのすべてのプロパティはパブリック静的プロパティであり、外部クラスによって直接使用できます。

@SpringBootApplication
public class DemoStarterTestApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(DemoStarterTestApplication.class, args);
        ConfigurableEnvironment environment = run.getEnvironment();
        String address = environment.getProperty("server.address1");
        int age = Integer.parseInt(environment.getProperty("spring.user.age"));
        EnvConfig envConfig = new EnvConfig();
        envConfig.setAddress(address);
        envConfig.setAge(age);

        System.out.println("地址为"+EnvConfig.address+",年龄为"+EnvConfig.age);
    }

}

パブリック構成クラス

public class EnvConfig {
    public static String address;

    public static int age;

    public  void setAddress(String address) {
        EnvConfig.address = address;
    }

    public  void setAge(int age) {
        EnvConfig.age = age;
    }
    
}

 

設定ファイル

おすすめ

転載: blog.csdn.net/weixin_42740540/article/details/124348851