spring-bootで@ConfigurationPropertiesを使用
詳細
@ConfigurationProperties注記の役割は、プレフィックスに基づいてプロファイルの属性をPOJOエンティティクラスにマッピングできることです.属性名が一致すれば自動的に入力でき、使い勝手が非常に便利です.この点は@Configuration注記と混同されやすく、@Configurationも構成クラスを注記することができます.異なるのは、各プロパティにバインドされたフィールドを再宣言する必要があり、少し複雑なので@ConfigurationProperties注釈を使用することをお勧めします.
簡単な例を見てみましょう.プロファイルがあります.次のように、さまざまなデータ構造のプロパティが含まれています.
@ConfigurationProperties注釈で構成クラスにマッピングできるようになりました.これにより、非常に便利になります.
このクラスの各プロパティは、構成内のプロパティに対応しています.フィールド名は同じでなければなりません.
成功したかどうかを検証するために、http://localhost:8777/testを介してcontrollerクラスを構築しました.
成功したかどうかを確認します.
注入に成功し、非常に簡潔に使用されており、springのようにxmlの山を通じてBeanに様々なデータ構造を注入しなければならず、コードを大幅に簡素化していることがわかります.
プロジェクトはgithubに共有されています.興味のある友达はstarができます.https://github.com/qindongliang/spring-boot-properties
@ConfigurationProperties注記の役割は、プレフィックスに基づいてプロファイルの属性をPOJOエンティティクラスにマッピングできることです.属性名が一致すれば自動的に入力でき、使い勝手が非常に便利です.この点は@Configuration注記と混同されやすく、@Configurationも構成クラスを注記することができます.異なるのは、各プロパティにバインドされたフィールドを再宣言する必要があり、少し複雑なので@ConfigurationProperties注釈を使用することをお勧めします.
簡単な例を見てみましょう.プロファイルがあります.次のように、さまざまなデータ構造のプロパティが含まれています.
#Simple properties
[email protected]
mail.port=9000
[email protected]
#List properties
mail.recipients[0][email protected]
mail.recipients[1][email protected]
#Map Properties
mail.additionalHeaders.redelivery=true
mail.additionalHeaders.secure=true
#Object properties
mail.credentials.username=john
mail.credentials.password=password
mail.credentials.authMethod=SHA1
#List
@ConfigurationProperties注釈で構成クラスにマッピングできるようになりました.これにより、非常に便利になります.
@Configuration
@PropertySource("classpath:mail.properties")
@ConfigurationProperties(prefix = "mail")
public class ConfigProperties {
public static class Credentials{
private String authMethod;
private String username;
private String password;
public String getAuthMethod() {
return authMethod;
}
public void setAuthMethod(String authMethod) {
this.authMethod = authMethod;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Credentials{" +
"authMethod='" + authMethod + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
private String host;
private int port;
private String from;
private Credentials credentials;
private List recipients;//
private Map additionalHeaders;
private Map mp;
private List cs;
//getter setter
}
このクラスの各プロパティは、構成内のプロパティに対応しています.フィールド名は同じでなければなりません.
成功したかどうかを検証するために、http://localhost:8777/testを介してcontrollerクラスを構築しました.
成功したかどうかを確認します.
============== ================
[email protected]
[email protected]
9000
==============List[String] ================
[[email protected], [email protected]]
==============Map[String,String] ================
{secure=true, redelivery=true}
==============Object ================
Credentials{authMethod='SHA1', username='john', password='password'}
==============List[Object] ================
Credentials{authMethod='SHA1', username='cs1', password='cs1pwd'}
Credentials{authMethod='SHA2', username='cs2', password='cs2pwd'}
==============Map[String,Object] ================
k2 Credentials{authMethod='SHA3', username='k2', password='pwdk2'}
k1 Credentials{authMethod='SHA3', username='k1', password='pwdk1'}
( Set )
注入に成功し、非常に簡潔に使用されており、springのようにxmlの山を通じてBeanに様々なデータ構造を注入しなければならず、コードを大幅に簡素化していることがわかります.
プロジェクトはgithubに共有されています.興味のある友达はstarができます.https://github.com/qindongliang/spring-boot-properties