ホームページ  >  記事  >  Java  >  Springboot-yaml 設定と自動設定の原理の分析

Springboot-yaml 設定と自動設定の原理の分析

王林
王林転載
2023-05-13 15:25:061069ブラウズ

バージョン調停センター

スプリングの依存関係は、一般的に使用される多くの jar パッケージに依存するのに役立ちます。これらの jar パッケージのインポートにはバージョン番号は必要ありません
例:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>

自動構成原理

構成ファイル構成デバッグ: true は、自動構成レポートをコンソールに出力できます。開始された自動構成クラスと未起動の自動構成クラスをすべて印刷できます。

@SpringBootApplication
特定のクラスでマークされています。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

@EnableAutoConfiguration: 自動構成を有効にすると、多くの構成を手動で行う必要がなくなります。

メイン構成クラスを入力しますパッケージの下のすべてのコンポーネントが Spring コンテナーにスキャンされます。

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {

AutoConfigurationImportSelector@import: を使用して、コンポーネントをコンテナーにインポートします。これにより、すべての自動構成がロードされます。 mysql、web などのクラスです。お待​​ちください

最後に、META-INF/spring.factories に移動して、すべての自動構成クラスを見つけてコンテナーにロードします。これらの自動構成クラスは、多くのことを実行してきました。 Spring で行っていた設定です。

yaml 構文

リテラル

文字列はデフォルトでは引用符で囲む必要はありません。一重引用符と二重引用符には特別な意味があります。目的

一重引用符は特殊なエスケープです。\n 出力や \n

二重引用符などの特殊文字はエスケープされません。\n 出力はスペースです。

は同じようにエスケープされます。一重引用符を追加する場合と同じ

緩いバインディング

属性をキャメル ケースで記述する方法は、ダッシュまたは下線を追加するのと同じです。エンティティ クラスに変換されると、属性は次のようになります。すべてキャメルケースです。ただし、これはconfigurationPropertiesでのみ使用でき、使用できません。@Valueアノテーションで

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({Registrar.class})
public @interface AutoConfigurationPackage {
アノテーションを使用すると、yaml構成のカスタム構成にプロンプ​​トを含めることができます

@PropertySource アノテーションを @PropertySource アノテーションと一緒に使用します。他の指定されたファイルをロードできます

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

@ImportResource と一緒に使用します

スプリング構成をインポートしますファイルを作成して有効にします

@PropertySource(value = "classpath:user.properties")

構成ファイルのプレースホルダー

${random.int} yaml によって提供される乱数を使用します
${server.port} 前述のを使用します構成値

${server.name: Hello} 値がない場合は、デフォルト値を使用します。

#profile

Activate して別の構成環境を指定します

コマンド ラインのアクティブ化では、-spring.profiles.active=dev

仮想マシン パラメーターを追加できます。 Activate -Dspring.profiles.active=dev


構成ファイルのロード シーケンス

file: ./config/ プロジェクト ルート パス下の config ディレクトリ

file: ./ project ルート ディレクトリ

classpath: config/

classpath: /
すべてのファイルが次の優先順位でロードされます。上から下へ、高いものから低いものへ、高いものは低いものを上書きします。異なる設定が有効になります。, 補足的です。
プロジェクトをデプロイするときに、-spring.config.location を通じて設定ファイルの場所を変更することもできます。プロジェクトにロードされたファイルは、ここで指定した構成ファイルを補完します。

以上がSpringboot-yaml 設定と自動設定の原理の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。