Springbootプロジェクトは、application.properties構成ファイルをデフォルトで読み取ります。プロパティファイルをカスタマイズする必要がある場合、それらを読み取る方法は?
1.リソースに新しい.Propertiesファイルを作成します
リソースディレクトリに新しい構成フォルダーを作成し、新しい.propertiesファイルを作成し、このフォルダーに配置します。図のremote.propertiesに示されているように
2。構成ファイルを書き込みます
remote.uploadfilesurl =/resource/files/remote.uploadpicurl =/resource/pic/
3.新しい構成クラスRemoteProperties.javaを作成します
@configuration@configurationProperties(prefix = "remote"、nagnoreunknownfields = false)@propertysource( "classpath:config/remote.properties")@data@componentpublic class remoteproperties {private string uploadfilesurl;プライベート文字列uploadpicurl;}で
@Configurationは、これが構成クラスであることを示します
@configurationProperties(prefix = "remote"、IngroreUnunfields = false)この注釈は、プロパティをバインドするために使用されます。プレフィックスは、プロパティのプレフィックス、つまりremote.propertiesファイルの「リモート」を選択するために使用されます。 IngroreUnknownFieldsは、プロパティが宣言されたドメインと一致できない場合に例外をスローするようにSpringbootに指示するために使用されます。
@propertySource( "classpath:config/remote.properties")構成ファイルパス
@DataこれはLombok Annotationで、Getter&Setterメソッドを生成するために使用されます。詳細については、Lombok関連情報を参照してください。
@ComponentはBeanとして識別されます
4。それをどのように使用しますか?
ANTATE ENABLECONFIGURATIONPROPERTIES(RemoteProperties.class)は、構成ファイルを使用する方法が配置されているクラス上のテーブル上のテーブルにあります。
自動的に注入します
@autowiredRemoTeproperties RemoteProperties;
メソッドを取得するには、メソッドでRemoteProperties.getuploadfilesurl()を使用します。
@enableconfigurationProperties(RemoteProperties.class)@RestControllerPublic Class TestService {@Autowired RemoteProperties RemoteProperties; public void test(){string str = remoteproperties.getuploadfilesurl(); System.out.println(str); }}ここで、strは構成ファイルに「/resource/files/」です。
PS:Spring-Bootで構成構成ファイルを読み取る2つの方法を見てみましょう
Spring-Bootテクノロジーを理解している場合は、Spring-Bootのコア構成ファイルのApplication.Propertiesを知っている必要があります。もちろん、カスタム構成ファイルの情報を注釈することもできます。
Spring-Bootが構成ファイルの読み取り方法:
1.アプリケーションのコア構成ファイル情報を読み取ります。Properties
コア構成ファイルは、リソースのルートディレクトリのApplication.PropertiesまたはApplication.yml構成ファイルを指します。これらの2つの構成ファイルを読み取るには、2つの方法がありますが、どちらも比較的簡単です。
Core ConfigurationファイルApplication.Propertiesコンテンツは次のとおりです。
test.msg = Hello World Springboot
方法1:@valueメソッド(一般的に使用される)を使用します
パッケージsolin.controller; Import org.springframework.beans.factory.annotation.value; org.springframework.web.bind.annotation.requestmappingをインポートします。 org.springframework.web.bind.annotation.restControllerをインポートします。 @restController public class webController {@value( "$ {test.msg}")private string msg; @RequestMapping( "/index1")public string index1(){return "method 1:"+msg; }}注:@valueの$ {}は、コア構成ファイルのキー名に含まれています。 @RestControllerをコントローラークラスに追加することは、このクラスのすべてのビューがJSONに表示されることを意味します。
訪問時:http:// localhost:8088/index1、「方法1:Hello World Springboot」を取得します。
方法2:環境方法を使用します
パッケージsolin.controller; Import org.springframework.beans.factory.annotation.autowired; Import org.springframework.beans.factory.annotation.value; Import org.springframework.core.env.environment; org.springframework.web.bind.annotation.requestmappingをインポートします。 org.springframework.web.bind.annotation.restControllerをインポートします。 @RestController Public Class WebController {@Autowired Private Environment Env; @RequestMapping( "/index2")public string index2(){return "method 2:"+env.getProperty( "test.msg"); }}注:この方法は、evnironmentを使用して依存関係注入を完了することです。 @autowiredアノテーションを作成したメンバー変数のプライベート環境envに追加して、依存関係インジェクションを完了し、env.getProperty( "key name")を使用して対応する値を読み取ります。
訪問時:http:// localhost:8088/index2、「方法2:Hello World Springboot」を取得します。
2。例:author.propertiesなど、カスタム構成ファイル情報を読み取ります
コアファイルの元のエコロジーを破壊するのではなく、カスタマイズされた構成情報を使用する必要もあります。一般に、これらのカスタム情報を配置するためにカスタム構成ファイルが選択されています。ここでは、構成ファイルauther.propertiesがリソースディレクトリに作成されます。
リソース/著者。プロパティのコンテンツは次のとおりです。
著者.name = solin auther.age = 22
構成を管理するためのエンティティクラスを作成します。
パッケージsolin.controller; org.springframework.boot.context.properties.configurationPropertiesをインポートします。 org.springframework.context.annotation.configurationをインポートします。 org.springframework.stereotype.componentをインポートします。 // @componentにコメントに追加すると、 @autowiredを使用して他の場所にそのインスタンスオブジェクトを作成できます@component @configurationProperties(prefix = "author"、locations = "classpath:author.properties")public class mywebconfig {private string name;プライベートインクエイジ; public string getName(){return name; } public void setName(string name){this.name = name; } public int getage(){return age; } public void Setage(int age){this.age = age; }}知らせ:
@configurationPropertiesアノテーションには2つのプロパティがあります。
場所:構成ファイルの場所を指定します
プレフィックス:構成ファイルのキー名のプレフィックスを指定します(構成ファイルのすべてのキー名は、著者から始まります)。
@Componentを使用することは、クラスが他の場所、つまり@Autowired Annotationを使用してインスタンスを作成することを可能にすることです。
テストコントローラーを作成します
パッケージsolin.controller; Import org.springframework.beans.factory.annotation.autowired; org.springframework.stereotype.controllerをインポートします。 org.springframework.web.bind.annotation.requestmappingをインポートします。 Import org.springframework.web.bind.annotation.responsebody; @controller public class configcontroller {@autowired private mywebconfig conf; @RequestMapping( "/test")public @responsebody string test(){return "name:"+conf.getName()+"---"+"age:"+conf.getage(); }}注:@componentはconfクラスに追加されるため、 @autowiredを使用してインスタンスオブジェクトを作成できます。
訪問時:http:// localhost:8088/test、 "name:solin --- age:22"
要約します
上記は、エディターが紹介したスプリングブートの下でカスタムプロパティ構成ファイルを読み取る方法です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!