[解決済み] Map または Properties オブジェクトとしてすべての環境プロパティにアクセスする
質問
アノテーションを使用して、以下のようにspring環境を設定しています。
@Configuration
...
@PropertySource("classpath:/config/default.properties")
...
public class GeneralApplicationConfiguration implements WebApplicationInitializer
{
@Autowired
Environment env;
}
これは、私のプロパティにつながる
default.properties
に含まれることになります。
Environment
. を使いたいのですが
@PropertySource
のメカニズムを使いたいと思います。なぜなら、すでにいくつかのフォールバック層と、環境設定に基づいた異なる動的な場所 (例えば config_dir の場所) を通じて、プロパティをオーバーロードする可能性を提供しているからです。私は、例を簡単にするためにフォールバックを取り除いただけです。
しかし、今問題なのは、例えばデータソースのプロパティを
default.properties
. データソースがどのような設定を要求しているのかを詳しく知らなくても、データソースに設定を渡すことができます。
Properties p = ...
datasource.setProperties(p);
ただし、問題なのは
Environment
オブジェクトはどちらも
Properties
オブジェクトでも
Map
も、それに匹敵するものもありません。私の見解では、環境のすべての値にアクセスすることは不可能です。
keySet
または
iterator
メソッドやそれに匹敵する何かです。
Properties p <=== Environment env?
私は何かを見逃しているのでしょうか?のすべてのエントリにアクセスすることは可能でしょうか?
Environment
オブジェクトのすべてのエントリにアクセスすることはできますか?もしそうなら、私はエントリーを
Map
または
Properties
オブジェクトを作成すると、プレフィックスでフィルタリングしたりマッピングしたりすることもできます。
Map
... これは、私がやりたいことです。何か提案はありますか?
どのように解決するのですか?
このようなものが必要です。おそらく改善されるでしょう。これは最初の試みです。
...
import org.springframework.core.env.PropertySource;
import org.springframework.core.env.AbstractEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.core.env.MapPropertySource;
...
@Configuration
...
@org.springframework.context.annotation.PropertySource("classpath:/config/default.properties")
...
public class GeneralApplicationConfiguration implements WebApplicationInitializer
{
@Autowired
Environment env;
public void someMethod() {
...
Map<String, Object> map = new HashMap();
for(Iterator it = ((AbstractEnvironment) env).getPropertySources().iterator(); it.hasNext(); ) {
PropertySource propertySource = (PropertySource) it.next();
if (propertySource instanceof MapPropertySource) {
map.putAll(((MapPropertySource) propertySource).getSource());
}
}
...
}
...
基本的に、環境からすべて
MapPropertySource
である環境 (そして非常に多くの実装があります) からは、すべて
Map
のプロパティとしてアクセスできます。
関連
-
[解決済み] Spring Data JPAでネイティブクエリ結果をNon-Entity POJOにマップする。
-
[解決済み] Spring Hibernate - 現在のスレッドでトランザクションに同期したセッションを取得できませんでした。
-
[解決済み] Spring @PostConstruct と init-method 属性の比較
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
-
[解決済み] Spring BeanPostProcessorは具体的にどのように動作するのですか?
-
[解決済み] SpringでLocalDateTime RequestParamを使用するには?StringからLocalDateTimeへの変換に失敗しました」と表示される。
-
[解決済み] なぜ春になると静電場が自動化されないのか?
-
[解決済み] Spring DAOとSpring ORMとSpring JDBCの比較
-
[解決済み] Spring: 静的フィールドに値を注入するには?
-
[解決済み] Spring RestTemplateでSSL証明書検証を無効にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Spring Hibernate - 現在のスレッドでトランザクションに同期したセッションを取得できませんでした。
-
[解決済み] Spring Boot Rest Controllerは、異なるHTTPステータスコードを返すには?
-
[解決済み] 複数のBeanが見つかった場合、Springはどのように名前による自動配線を行うのですか?
-
[解決済み] Spring @PostConstruct と init-method 属性の比較
-
[解決済み] Maven依存性 spring-webとspring-webmvcの比較
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
-
[解決済み] SpringでLocalDateTime RequestParamを使用するには?StringからLocalDateTimeへの変換に失敗しました」と表示される。
-
[解決済み] なぜ春になると静電場が自動化されないのか?
-
[解決済み] Spring DAOとSpring ORMとSpring JDBCの比較
-
[解決済み] Spring: 静的フィールドに値を注入するには?