インターフェース Environment
- すべてのスーパーインターフェース:
PropertyResolver
- すべての既知のサブインターフェース:
ConfigurableEnvironment
,ConfigurableWebEnvironment
PropertyResolver
スーパーインターフェースを介して公開されます。 プロファイルは、指定されたプロファイルがアクティブである場合にのみコンテナーに登録される Bean 定義の名前付き論理グループです。Bean は、XML で定義されているか、アノテーションを介して定義されているかに関係なく、プロファイルに割り当てることができます。構文の詳細については、spring-beans 3.1 スキーマまたは @Profile
アノテーションを参照してください。プロファイルに関連する Environment
オブジェクトのロールは、現在アクティブなプロファイル(存在する場合)と、デフォルトでアクティブにする必要があるプロファイル(存在する場合)を決定することです。
プロパティは、ほとんどすべてのアプリケーションで重要なロールを果たし、プロパティファイル、JVM システムプロパティ、システム環境変数、JNDI、サーブレットコンテキストパラメーター、アドホックプロパティオブジェクト、マップなど、さまざまなソースから発生する可能性があります。プロパティに関連する Environment
オブジェクトのロールは、プロパティソースを構成し、それらからプロパティを解決するための便利なサービスインターフェースをユーザーに提供することです。
ApplicationContext
内で管理される Bean は、プロファイルの状態を照会したり、プロパティを直接解決したりするために、EnvironmentAware
または Environment
として @Inject
として登録できます。
ただし、ほとんどの場合、アプリケーションレベルの Bean は Environment
と直接やり取りする必要はありませんが、代わりに、それ自体が EnvironmentAware
であり、<context:property-placeholder/>
を使用するときにデフォルトで登録される PropertySourcesPlaceholderConfigurer
などのプロパティプレースホルダーコンフィギュアラーによって ${...}
プロパティ値を置き換えるようにリクエストする場合があります。
Environment
オブジェクトの構成は、すべての AbstractApplicationContext
サブクラス getEnvironment()
メソッドから返される ConfigurableEnvironment
インターフェースを介して行う必要があります。アプリケーションコンテキスト refresh()
の前のプロパティソースの操作を示す使用例については、ConfigurableEnvironment
Javadoc を参照してください。
- 導入:
- 3.1
- 作成者:
- Chris Beams, Phillip Webb, Sam Brannen
- 関連事項:
PropertyResolver
EnvironmentCapable
ConfigurableEnvironment
AbstractEnvironment
StandardEnvironment
EnvironmentAware
ConfigurableApplicationContext.getEnvironment()
ConfigurableApplicationContext.setEnvironment(org.springframework.core.env.ConfigurableEnvironment)
AbstractApplicationContext.createEnvironment()
方法の概要
修飾子と型メソッド説明boolean
acceptsProfiles
(StringSE... profiles) 使用すべきではありません。boolean
acceptsProfiles
(Profiles profiles) 指定されたProfiles
述語がアクティブプロファイルと一致するかどうかを判断します。または、明示的なアクティブプロファイルがない場合は、指定されたProfiles
述語がデフォルトプロファイルと一致するかどうかを判断します。StringSE[]
この環境で明示的にアクティブにされたプロファイルのセットを返します。StringSE[]
アクティブなプロファイルが明示的に設定されていない場合、デフォルトでアクティブになるプロファイルのセットを返します。default boolean
matchesProfiles
(StringSE... profileExpressions) 指定されたプロファイル式の 1 つがアクティブなプロファイルと一致するかどうかを判断します。または、明示的なアクティブなプロファイルがない場合は、指定されたプロファイル式の 1 つがデフォルトプロファイルと一致するかどうかを判断します。インターフェース org.springframework.core.env.PropertyResolver から継承されたメソッド
containsProperty, getProperty, getProperty, getProperty, getProperty, getRequiredProperty, getRequiredProperty, resolvePlaceholders, resolveRequiredPlaceholders
メソッドの詳細
getActiveProfiles
StringSE[] getActiveProfiles()この環境で明示的にアクティブにされたプロファイルのセットを返します。プロファイルは、デプロイ環境などに基づいて、条件付きで登録される Bean 定義の論理グループを作成するために使用されます。プロファイルをアクティブにするには、"spring.profiles.active" をシステムプロパティとして設定するか、ConfigurableEnvironment.setActiveProfiles(String...)
を呼び出します。アクティブとして明示的に指定されたプロファイルがない場合は、デフォルトのプロファイルが自動的にアクティブになります。
getDefaultProfiles
StringSE[] getDefaultProfiles()アクティブなプロファイルが明示的に設定されていない場合、デフォルトでアクティブになるプロファイルのセットを返します。matchesProfiles
指定されたプロファイル式の 1 つがアクティブなプロファイルと一致するかどうかを判断します。または、明示的なアクティブなプロファイルがない場合は、指定されたプロファイル式の 1 つがデフォルトプロファイルと一致するかどうかを判断します。プロファイル式を使用すると、複雑なブール型プロファイルロジックを表現できます。例:
"p1 & p2"
、"(p1 & p2) | p3"
など。サポートされる式構文の詳細については、"Profiles.of(String...)
" を参照してください。このメソッドは、
env.acceptsProfiles(Profiles.of(profileExpressions))
の便利なショートカットです。- 導入:
- 5.3.28
- 関連事項:
acceptsProfiles
使用すべきではありません。5.1 以降、acceptsProfiles(Profiles)
またはmatchesProfiles(String...)
を優先指定されたプロファイルの 1 つ以上がアクティブかどうか、明示的にアクティブなプロファイルがない場合は、指定されたプロファイルの 1 つ以上がデフォルトプロファイルのセットに含まれているかどうかを判断します。プロフィールが "!" で始まる場合ロジックは反転します。つまり、指定されたプロファイルがアクティブでない場合、このメソッドは
true
を返します。例: プロファイル "p1" がアクティブであるか、"p2" がアクティブでない場合、env.acceptsProfiles("p1", "!p2")
はtrue
を返します。- 例外:
IllegalArgumentExceptionSE
-null
配列、空の配列、引数なしで呼び出された場合、いずれかのプロファイルがnull
、空、または空白のみの場合- 関連事項:
acceptsProfiles
指定されたProfiles
述語がアクティブプロファイルと一致するかどうかを判断します。または、明示的なアクティブプロファイルがない場合は、指定されたProfiles
述語がデフォルトプロファイルと一致するかどうかを判断します。プロファイル式を文字列として直接指定したい場合は、代わりに
matchesProfiles(String...)
を使用してください。- 導入:
- 5.1
- 関連事項:
acceptsProfiles(Profiles)
またはmatchesProfiles(String...)
を優先