春ブーツ、いくつかの基本的な構成
グローバルコンフィギュレーション
基本的な使い方
でsrc/main/resources
春ブーツ、デフォルトの設定ファイルを定義することができますapplication.perproties
かapplication.yml
application.ymlグローバル・コンフィギュレーション・ファイルの作成、@valueがオブジェクトに注入使います
ranger:
name: chenyaping
age: 21
@Configuration
public class Ranger {
@Value("${ranger.name}")
private String name;
@Value("${ranger.age}")
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Ranger{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
スプリングブートアプリケーションは、次のように容器から取得した印刷のレンジャー・インスタンスを開始します。
Ranger{name='chenyaping', age=21}
プロファイルは、スイッチを使用して実装します
構成属性クラスを作成します。EmailProperties
@ConfigurationProperties(prefix = "ranger.mail")
public class EmailProperties {
private String username;
private Integer port;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
@Override
public String toString() {
return "EmailProperties{" +
"username='" + username + '\'' +
", port=" + port +
'}';
}
}
自動コンフィギュレーションクラスの作成
@Configuration
@EnableConfigurationProperties(EmailProperties.class)
@ConditionalOnProperty(prefix = "ranger.mail",value = "enable",matchIfMissing = false)
public class EmailSender {
@Autowired
private EmailProperties emailProperties;
@Override
public String toString() {
return "EmailSender{" +
"emailProperties=" + emailProperties +
'}';
}
}
開閉とするために、構成ファイルYAML電子メールの送信アセンブリを変更するranger.mail.enable
偽であります
ranger:
name: chenyaping
age: 21
mail:
enable: true
port: 22
username: ${ranger.name} # 属性间可以引用
することで、アプリケーションを起動するApplicationContext#getBean()
電子メールの送信を取得し、次のように例外がスローされます:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ranger.boot.config.EmailProperties' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:346)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:337)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123)
at com.ranger.boot.Application.main(Application.java:22)
ranger.mail.enableでYAMLが真である場合には、以下のように、結果は以下のとおりです。
EmailProperties{username='chenyaping', port=22}
EmailSender{emailProperties=EmailProperties{username='chenyaping', port=22}}
このように、我々は、機能スイッチの設定ファイルを変更することで実現することができます
カスタム構成
application.ymlで構成プロパティに加えて、我々はまた、設定ファイルをカスタマイズすることができます。/ resourcesディレクトリの下にメインのsrc /でtest.propertiesを作成します。
test.username=ranger
コンフィギュレーション・クラスを作成します。
@Configuration
@ConfigurationProperties(prefix="test")
@PropertySource("classpath:test.properties")
public class CustomConfig {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
return "CustomConfig{" +
"username='" + username + '\'' +
'}';
}
}
注釈は@PropertySource("classpath:test.properties")
、使用するプロファイルを指定します。印刷の実行を開始
CustomConfig{username='ranger'}
コマンドラインコンフィギュレーション
また、春のブートアプリケーションにコマンドラインを起動するには、設定ファイルのパラメータを渡すことができます
- 使用する
-D
パラメータを設定します
@Configuration
public class CommandLineConfig {
@Value("${args.username}")
private String username;
@Value("${args.age}")
private String age;
// getter,setter and toString
}
使用するmvn clean package
アプリケーションをパッケージ化するために、次に実行するには、次のコマンドラインを使用
java -jar -Dargs.username=ranger -Dargs.age=22 spring-boot-config-1.0-SNAPSHOT.jar
結果を見ることができます:CommandLineConfig{username='ranger', age='22'}
パラメータが正常に設定クラスに注入されています
- 使用
--
次のようにコマンドラインの変更を使用すると、次のとおりです。
java -jar spring-boot-config-1.0-SNAPSHOT.jar --args.username=ranger --args.age=22
私たちは、同じ結果を見ることができます
複数のプロファイルプロフィール
異なる設定ファイルを使用するためのプロフィール、設定ファイルには、さまざまな環境のためのマルチ環境でなければならないapplication-{profile}.yml
形式寿命、{profile}
環境に識別されます。2つのプロファイルの例については、定義
application-dev.yml
server:
port: 8080
application-prod.yml
server:
port: 80
私たちは、プロファイル属性値アクティブにするにはapplication.yml spring.profile.activeでこのプロパティを使用することができますapplication-{profile}.yml
でprofile
値を
カスタムブートbannner
SRC /メイン/リソースでbanner.txtファイルを作成し、独自のパターンに貼り付けることができます