2017-05-11 24 views
0

プロパティファイルからプロパティを挿入しようとしています。私はSpring 4.3のバージョンを使用しています。 プロパティファイルはsrc/main/resourcesフォルダにあります。@Valueプロパティの注入がGenericFilterBeanで機能しないSpring

春のアプリケーションコンテキストXMLファイルで
public class SecurityFilter extends GenericFilterBean { 

    @Value("${url.value}") 
    private String url;  

    ...   

    } 

<context:property-placeholder location="classpath*:authentication.properties"/> 
<bean id="securityFilter" class="com.example.SecurityFilter"/> 

しかし、web.xmlに

は、私はフィルタ

<filter> 
    <filter-name>securityFilter</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>securityFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

マイカスタムフィルタクラスについては、以下の構成を有していますサーバーを起動すると、Beanを作成できないという例外がスローされます

Error creating bean with name 'securityFilter': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: 
Could not resolve placeholder 'url.value' in string value "${url.value}" 

答えて

0

コードの半分は注釈付きで、半分はXML形式です。注釈を完全に使用してみてください。クラスを@Componentでマークし、パッケージがアプリケーションサーブレットファイルのコンテキストコンポーネントスキャナに含まれていることを確認します。プロパティファイルに必要なエントリがあることを確認し、Beanを明示的に書き込む必要はありません。 Uptate: クラスパスにプロパティファイルがあることを確認してください。

+0

こんにちはJajikanth、返信いただきありがとうございます。 @Componentアノテーションでクラスに注釈を付けることを試みましたが、それでも同じエラーがスローされます。プロパティをstringにマップできません。文字列値 "$ {url.value}"のプレースホルダ 'url'を解決できません – veejay

+0

プロパティファイルがクラスパスに含まれていない可能性があります。それ本当?あなたのプロジェクト構造のスクリーンショットを共有してください。下のリンクの私の答えは、より多くのアイデアを与えるかもしれません。しかし、それはあなたが正しいとAnnotation.http://stackoverflow.com/questions/43710016/how-to-use-a-properties-file-in-spring-beans-xml-file/43768787#43768787 – Jajikanth

+0

@Jaijikanthを使用しています。プロパティファイルはクラスパスにありませんでした。問題が解決し、プロパティファイルを読み込めるようになりました。 – veejay

関連する問題