0

Spring MVC を使用しています。Controller クラスでは、 @Value アノテーションを使用して、プロパティ ファイルから取得した値を挿入したいと考えています。

@Value("${upload.dir}")
private String uploadDir;

そのため、プロパティ プレースホルダーをどこかに配置する必要があります。

web.xml は典型的なものです。

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/mvc-dispatcher-servlet.xml</param-value>
    </init-param>
    ...
</servlet>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/business-context.xml</param-value>
</context-param>

まず、プレースホルダーを business-context.xml に配置します。機能しません:「フィールドを自動配線できませんでした」。

次に、それを mvc-dispatcher-servlet.xml に入れました。動作します。

だから私はこれらの2つのコンテキストについて混乱しています.それらは同じものですか、それとも異なるものですか? business-content.xml で定義した Bean は自動接続できますが、@Value が機能しないためです。

長い「場所」プロパティがあるため、両方の xml ファイルにプレースホルダーを入れたくありません。また、business-context.xml は一部のジョブで使用されるため、省略できません。

business-context.xml で定義されたプレースホルダーを mvc-dispatcher-servlet.xml でも見えるようにする方法はありますか?

4

1 に答える 1