【Javaフルスタック開発】SpringBoot設定ファイルとマルチ環境設定


Spring Bootは、グローバル構成ファイル application.properties を使用します。このファイルは、src / main/resourcesディレクトリーまたはクラスパスの/configの下にあります。 SpringBootのグローバル構成ファイルの役割は、いくつかのデフォルト構成の構成値を変更し、ユーザーが構成プロパティをカスタマイズできるようにすることです。
application.yamlも構成ファイルの一種です。2つの構成ファイルの違いは、構成プロパティのファイル形式が異なることです。

このブログでは、構成にapplication.propertiesを使用しています

注:プロジェクトに構成ファイルapplication.propertiesまたはapplication.yamlファイルがない場合は、リソースパスの下に新しいファイルを作成できます

1.構成プロパティ

カスタムプロパティ

データベース定数構成、デフォルトのポート番号構成など、多くのカスタムプロパティをapplication.propertiesでます。これらの構成定数に加えて、カスタム定数も許可されます。

# applicatino.properties 中指定配置
com.atcjx.name=cuijiexiang
com.atcjx.password=123456

使用する必要のある構成ファイルのメンバー変数の上に注釈を追加する@Value(“${path}”)と、構成ファイルクラスの値をメンバー変数にバインドできます。

@RestController
public class baseController {
    
    
    @Value("${com.atcjx.name}")
    private String name;

    @Value("${com.atcjx.password")
    private String password;

    @RequestMapping("/")
    String request(){
    
    
        System.out.println("读取到的配置文件数据数据:");
        System.out.println("用户名称:" + name);
        System.out.println("密码:" + password);
        return null;
    }
}

プロジェクトを開始するlocalhost:8080/と、次の結果が表示されます。

画像-20220330203128898

注入する属性値が多すぎる場合、1つずつバインドするのに時間がかかります。多数の構成属性をすばやくバインドするために、@ConfigurationProprites(prefix = “...”)アノテーションいます使用する構成ファイル内。

@Component
@ConfigurationProperties(prefix = "com.atcjx")
public class configBean {
    
    

    private String name;
    private String password;
    // 省略get、set方法
}

@ConfigurationPropertiesアノテーションは使用するためにIOCコンテナに注入する必要があることに注意してください。たとえば@Component、Springインジェクションクラスのアノテーションでは、エントリクラスに追加を追加する必要もあり@EnableConfigurationPropertiesます。

// 开启允许配置文件配置属性
@EnableConfigurationProperties
@SpringBootApplication
public class SpringBootTestApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringBootTestApplication.class, args);
    }
}

使用する必要がある場合は、スプリングインジェクションを使用します。

@RestController
public class baseController {
    
    
    // 使用@AutoWired注入
    @Autowired
    configBean configBean;

    @RequestMapping("/")
    String request(){
    
    
        System.out.println("读取到的配置文件数据数据:");
        System.out.println("用户名称:" + configBean.getName());
        System.out.println("密码:" + configBean.getPassword());
        return "";
    }
}

アクセスlocalhost:8080/:正常に読み取りました!

画像-20220330205525745

ランダム値プロパティ

多くの場合、ランダム値も構成の重要な部分です。ランダム値の生成をコードに入れると、コードが肥大化し、理解しにくくなります。SpringBoot構成ファイルは、この問題の解決に役立ちます。Useを使用${random}すると、int、long、stringtypeなどのさまざまなタイプの値をランダムに生成できます。

dudu.secret=${random.value}
dudu.number=${random.int}
dudu.bignumber=${random.long}
dudu.uuid=${random.uuid}
dudu.number.less.than.ten=${random.int(10)}
dudu.number.in.range=${random.int[1024,65536]}

2.構成ファイル

プロファイルの優先度

優先度の降順で並べ替えます

  1. ファイルパス:/config/applicaiton.properties
  2. ファイルパス:/applicaiton.properties
  3. クラスパス:/config/applicaiton.properties
  4. クラスパス:/applicaiton.properties

場所は次のとおりです。

画像-20220330213518226

優先度の高いプロファイルは、優先度の低いプロファイルを上書きできます。

同じパスにあるapplication.propertiesファイルとapplication.ymlファイルを比較すると、application.propertiesの構成優先度が高くなります。


マルチ環境構成

多くの場合、アプリケーションはさまざまなランタイム環境にデプロイする必要があり、これによりさまざまな環境構成の詳細が発生します。ログを例にとると、本番ログはログレベルをWARNそれ以上に設定し、運用と保守の保守と管理を容易にするためにログをログファイルに書き込む必要があります。ログレベルはDEBUG開発中のレベルのみを必要とします。 、およびログがコンソールに出力されます。おそらく良い選択です。

公開するたびに設定ファイルを削除または置換する必要がある場合、不必要なトラブルが発生します。SpringBootは、この問題を解決するためのマルチ環境構成を提供します。

複数の環境を構成する前に、異なる環境での構成ファイルの名前が異なることを理解する必要があります。異なる環境での構成ファイルの名前は、アプリケーションで始まり、対応する環境を指定するための「-{profile}」が続きます。例:

  • application-dev.properties:開発環境構成ファイル
  • application-prod.properties:実稼働環境構成ファイル

名前は、主にさまざまな環境を区別するために、単独で定義できます。これで、マルチ環境構成を開始できます。

ステップ1:レスポンシブ環境構成ファイルを作成する

開発環境、テスト環境、本番環境の3つの環境の構成ファイルを作成します。

画像-20220331213903167

ステップ2:デフォルト環境を追加する

デフォルトの環境が指定されていない場合、SpringBootはデフォルトでapplication.propertiesをロードします。環境を切り替える必要がある場合は、 application.propertiesで開発環境構成ファイルを指定する必要があります。

spring.profiles.active=dev

つまり、SpringBootの起動時に、構成ファイルapplication-dev.propertiesをロードし、対応するファイル名に注意してください。

これで、マルチ環境構成が完了しました。

補充する

プロジェクトがパッケージ化されている場合、環境を切り替えるには、コマンドラインコマンドを使用して次のことを実行する必要があります。

# 设置启动环境为 dev
java -jar xxx.jar --spring.profiles.active=dev

おすすめ

転載: blog.csdn.net/qq_51439643/article/details/123907772