問題タブ [property-placeholder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
147454 参照

java - String から Integer への @Value アノテーション タイプのキャスト

値の出力を整数にキャストしようとしています:

上記はエラーをスローします

私も試してみました@Value("(java.lang.Integer)${api.orders.pingFrequency}")

Google はこの件についてあまり語っていないようです。この値が使用されているすべての場所でこの値を解析するのではなく、常に整数を処理したいと考えています。

回避策

セッターメソッドを使用して変換を実行することが回避策になる可能性があることは理解していますが、Spring で変換できるのであれば、Spring について何か学びたいと思います。

0 投票する
1 に答える
2912 参照

spring - context:property-placeholder プロパティ Bean を参照する方法

Spring コンテキストには、この既存のプロパティ ローダー構成があります。

そして、Beanを参照するhedgingPropertiesBeanがあります

複数のプロパティ ファイルからロードするようにコンテキストをリファクタリングし、プロパティの定義が重複しないようにしています。私の最初の試みは、上記の2つの代わりにこのBeanを使用することです

hedgingPropertiesしかし、使用時にBeanへのエイリアスまたは参照を保持するにはどうすればよいcontext:property-placeholderですか?

0 投票する
1 に答える
2015 参照

spring - の範囲階層的なコンテキストで

読みました:

複数のコンポーネント スキャン

Spring MVC の ApplicationContext と WebApplicationContext の違いは何ですか?

<context:component-scan /> がディスパッチャ コンテキストではなくアプリケーション コンテキストにある場合、@RequestMapping アノテーションが機能しない(これについては後で詳しく説明します)

他にもいくつかありますが、これらのどれも質問に答えていません:

Spring MVC アプリケーションの ROOT コンテキストに存在する場合、スコープが<context:component-scan.../>制限されるのはなぜですか?

私の理解では、指定されたパッケージ内のすべてのクラスのスキャンが発生し、ステレオタイプ化された Bean@Componentまたはそのサブステレオタイプ ( @Repository@Serviceおよび@Controller) のいずれかがインスタンス化されます。

与えられた:

applicationContext.xml (ルート コンテキスト)

main-servlet.xml (サーブレット コンテキスト)

com/myproject/web/MainController.java

Spring のドキュメントには、ルート コンテキストでインスタンス化されたすべての Bean が共有され、個々のサーブレット アプリケーション コンテキストで使用できると記載されています。したがって、<context:...>ルート コンテキストでの 2 つの宣言により、サーブレット コンテキストで表示される Bean が生成されます。しかし、そうではないようです。サーブレットのコンテキストで<context:component-scan.../>両方を繰り返す必要があります。<context:property-placeholder.../>

<context:component-scan.../>サーブレット コンテキストでを省略すると、

@Controllerが解決されなかったことを示します。

処理されていないプロパティ参照を使用<context:property-placeholder.../>した注釈の結果を省略すると、私の場合、いくつかの壊れたリンクが発生します。@Value

これらの<context:.../>ディレクティブは両方とも Bean のインスタンス化につながるため、ドキュメントとは正反対に、Bean が子コンテキストで表示されない理由について混乱しています。また、component-scanステートメントが 2 つあると、コントローラー Bean が 2 回インスタンス化されることはありませんか?

<context:component-scan /> がディスパッチャ コンテキストではなくアプリケーション コンテキストにある場合、@RequestMapping アノテーションが機能しないことに関しては<mvc:annotation-driven />、アプリ コンテキストにあり、ここでの回答では 2 つのcomponent-scanステートメントが必要な理由が説明されていません。

「魔法」がどのように機能するかを完全に理解し、何かを微調整したときにどのように動作するかを予測できない限り、「魔法」を使用するのは本当に不快です。したがって、「両方の場所に追加して先に進む」という「解決策」は受け入れられません。

0 投票する
1 に答える
5354 参照

spring - Spring YAML プロファイル構成

Spring プロファイルが yaml およびプロパティ ファイルでどのように機能するかをよく理解しているかどうかはわかりません。これらの 2 種類の構成をミスしようとしていました (2 つのファイルは構成を共有していません) が、yaml 構成からプロファイルを読み取るときに問題が発生しています。

Spring 4.1.1を使用しています

これがコードです。これは context:property-placeholder 構成です:

ここで、yamlProperties は次の Bean です

ここにtest.ymlがあります

私の問題は、これを実行してデータソースを (xml 経由で) 構成しようとすると、次のようになることです。

Spring は常に、プロファイルを無視して YAML ファイルの最後の構成を使用します。web.xml の contex-parameter を介して、または直接 JVM にアクティブ プロファイルを渡そうとしました (アクティブ/デフォルト プロファイルを取得するために EnvironmentAware インターフェイスを実装する Bean を実装しましたが、それは正しいです)。値を挿入すると、プロファイルは無視されます。

プロパティプレースホルダーコンテキスト(注文付き)を使用すると、PropertySourcesPlaceholderConfigurerのインスタンスであるプロパティプレースホルダーが1つ取得されるため、環境にアクセスできると思いますが、プロファイルが無視され、Springが最後のyamlファイル構成を取得する理由を理解できません。

セクション 63.6 http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.htmlに、ドキュメント (spring-boot) への参照を追加し ます。

前もって感謝します

0 投票する
0 に答える
128 参照

java - Spring でマージされたプロパティを取得する

プロジェクトでマージされたすべてのプロパティを取得しようとしています。以下は、プロパティの構成ファイルのセクションです。

PropertiesFactoryBeanクラスでも試しましたが、proj.env変数が見つかりません。実行時に春にマージされたすべてのプロパティを取得する方法を教えてください。

0 投票する
1 に答える
1165 参照

java - 外部プロパティ ファイルの読み取り

このアプリケーションを開発するために Spring MVC を使用しています。外部の .properties ファイルから読み取ることになっています。

mvc-dispatcher-servlet.xml

構成.java

EditorController.java

アプリケーションを起動すると、ファイルを読み取って URL を取得できますが、ブラウザで開くと、hostURL=null になります。

誰かが間違いを指摘できますか?

0 投票する
1 に答える
2390 参照

java - @Value アノテーションなしでプロパティ値を注入する Spring

Spring @Value アノテーションを使用してプロパティ値を注入しています。挿入する Java フィールドに一致するようにプロパティ名を命名する規則があります。これにより、構成 Bean の各 Java フィールドに @Value アノテーションを付ける必要があるという不要な作業が発生します。

Java クラスに新しいアノテーション (ConfigBean としましょう) を付けて、ポスト プロセッサにそのような Bean のプロパティ名を読み取らせ、プロパティ値を自動的に挿入させる方法を探しています。

@Value アノテーションを使用せずにこのプロパティ インジェクションを実装する方法について、いくつかの指針を探しています。