public class SystemEnvironmentPropertySource extends MapPropertySource
MapPropertySource
の特殊化。ピリオド文字やハイフン文字を含む変数を許可しない Bash およびその他のシェルの制約を補正します。また、シェルをより慣用的に使用するために、プロパティ名の大文字のバリエーションを許可します。 例: getProperty("foo.bar")
を呼び出すと、元のプロパティまたは「同等の」プロパティの値が検索され、最初に見つかったものが返されます。
foo.bar
- 元の名前 foo_bar
- 期間にアンダースコアを使用 (もしあれば)FOO.BAR
- オリジナル、大文字あり FOO_BAR
- アンダースコアと大文字 上記のプロパティのいずれかが存在する場合は true
を返し、それ以外の場合は false
を返す containsProperty(String)
の呼び出しにも同じことが当てはまります。
この機能は、アクティブまたはデフォルトのプロファイルを環境変数として指定する場合に特に役立ちます。Bash では、以下は許可されません。
spring.profiles.active=p1 java -classpath ... MyAppただし、次の構文は許可されており、より一般的です。
SPRING_PROFILES_ACTIVE=p1 java -classpath ... MyApp
これらの「プロパティ名解決」がいつ発生するかを説明するメッセージに対して、このクラス(またはパッケージ)のデバッグレベルまたはトレースレベルのログを有効にします。
このプロパティソースは、StandardEnvironment
およびそのすべてのサブクラスにデフォルトで含まれています。
StandardEnvironment
, AbstractEnvironment.getSystemEnvironment()
, AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME
PropertySource.StubPropertySource
logger, name, source
コンストラクターと説明 |
---|
SystemEnvironmentPropertySource(StringSE name, MapSE<StringSE, ObjectSE> source) 指定した名前で新しい SystemEnvironmentPropertySource を作成し、指定した MapPropertySource に委譲します。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean | containsProperty(StringSE name) 指定された名前のプロパティまたはそのアンダースコア / 大文字のバリアントがこのプロパティソースに存在する場合、 true を返します。 |
ObjectSE | getProperty(StringSE name) 指定された名前のプロパティまたはそのアンダースコア / 大文字のバリアントがこのプロパティソースに存在する場合、この実装は true を返します。 |
protected boolean | isSecurityManagerPresent() |
protected StringSE | resolvePropertyName(StringSE name) このプロパティソースに、指定された名前のプロパティ、またはそのアンダースコア / 大文字のバリエーションが含まれているかどうかを確認します。 |
getPropertyNames
equals, getName, getSource, hashCode, named, toString
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public boolean containsProperty(StringSE name)
true
を返します。MapPropertySource
の containsProperty
name
- 検索するプロパティの名前 @Nullable public ObjectSE getProperty(StringSE name)
true
を返します。MapPropertySource
の getProperty
name
- 検索するプロパティ PropertyResolver.getRequiredProperty(String)
protected final StringSE resolvePropertyName(StringSE name)
null
を返しません。protected boolean isSecurityManagerPresent()